k8s不调度pod的问题

来源:1-6 向集群加入worker节点

Action33

2019-01-20

老师,这个是我启动pod的yaml文件,共计有10台服务器,

apiVersion: v1
kind: ReplicationController
metadata:
  name: spider-cpu-demo
spec:
  replicas: 50
  selector:
    app: spider-cpu-demo
  template:
    metadata:
      labels:
        app: spider-cpu-demo
    spec:
      containers:
      - name: spider-cpu-demo-container
        image: scrapinghub/splash
        ports:
        - containerPort: 8050
        resources:
          requests:
            memory: "1Gi"
            cpu: "300m"
          limits:
            memory: "1.5Gi"
            cpu: "1"

这个是开启service的yaml文件

apiVersion: v1
kind: Service
metadata:
  name: spider01-svc
  labels:
    name: spider01-svc
spec:
  type: NodePort
  selector:
    app: spider01
  ports:
  - port: 8050
    targetPort: 8050
    protocol: TCP

当我有个程序去调用开启的这个服务之后,开始的时候会调用服务会比较流畅,当过了几个小时时候,程序就处于sleep状态,不再调用这个服务了,这个是什么原因呢?

写回答

3回答

Action33

提问者

2019-01-22

老师,如果我直接访问http服务就可以直接立即的返回响应,但是我的程序是sleep状态,如图

//img.mukewang.com/szimg/5c47214100010aa610070209.jpg

我使用kubectl describe svc/spider01-svc 查看endpoint,感觉也是没有问题,如图:

//img.mukewang.com/szimg/5c4721c50001b88d11080647.jpg

我查看cin网络插卡,命令kubectl get pods -n kube-system 不知道是否正常,如图:

//img.mukewang.com/szimg/5c47221f0001b23810640687.jpg

0
1
tonybai
从最后的那张截图来看,你的多个节点上的kube-proxy都没有处于"running“状态。kube-proxy是用于设置iptables的,如果kube-proxy不正常,那么iptables规则设置将受到影响。service到pod通信也会受到影响。
2019-01-23
共1条回复

Action33

提问者

2019-01-21

当我查看日志时候发现程序在访问master 的ip地址和service的端口时候,一直在等待中,所以推测是不调度了

0
1
tonybai
如果是http服务,可以用curl命令访问一下您的service端口。如果长时间超时无应答。先查看一下是否是您的应用自身的问题(可在k8s节点上直接curl pod中程序监听的端口)。如果程序自身没有问题,可以看看你的cni网络插卡是否还运行正常(kubectl get pods -n kube-system),cni出问题会导致跨节点的服务不通。
2019-01-21
共1条回复

tonybai

2019-01-20

亲,您在问题中提到:“程序就处于sleep状态,不再调用这个服务了” ? 您是通过什么得到:“k8s不调度pod“的结论的呢?建议查看一下service的endpoint以及每个endpoint的情况,使用kubectl describe svc/spider01-svc 。

0
0

Kubernetes实战 高可用集群搭建,配置,运维与应用

以生产为目标,原理+操作, Kubernetes结合典型云原生应用

794 学习 · 196 问题

查看课程