kubernetes 没有可用于在 coreos 中调度 pod 的节点

标签 kubernetes

我创建了一个 kubernetes 集群来测试。但无法创建 rc.我收到错误原因:“failedScheduling”没有可用于调度 Pod 的节点:

I1112 04:24:34.626614       6 factory.go:214] About to try and schedule pod my-nginx-63t4p
I1112 04:24:34.626635       6 scheduler.go:127] Failed to schedule: &{{ } {my-nginx-63t4p my-nginx- default /api/v1/namespaces/default/pods/my-nginx-63t4p c4198c29-88ef-11e5-af0e-002590fdff2c 1054 0 2015-11-12 03:45:07 +0000 UTC <nil> map[app:nginx] map[kubernetes.io/created-by:{"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"default","name":"my-nginx","uid":"c414bbd3-88ef-11e5-8682-002590fdf940","apiVersion":"v1","resourceVersion":"1050"}}]} {[{default-token-879cw {<nil> <nil> <nil> <nil> <nil> 0xc20834c030 <nil> <nil> <nil> <nil> <nil>}}] [{nginx nginx [] []  [{ 0 80 TCP }] [] {map[] map[]} [{default-token-879cw true /var/run/secrets/kubernetes.io/serviceaccount}] <nil> <nil> <nil> /dev/termination-log IfNotPresent <nil>}] Always 0xc20834c028 <nil> ClusterFirst map[] default  false []} {Pending []     <nil> []}}
I1112 04:24:34.626720       6 event.go:203] Event(api.ObjectReference{Kind:"Pod", Namespace:"default", Name:"my-nginx-63t4p", UID:"c4198c29-88ef-11e5-af0e-002590fdff2c", APIVersion:"v1", ResourceVersion:"1054", FieldPath:""}): reason: 'failedScheduling' no nodes available to schedule pods

pod 的状态如下:

core@core-1-86 ~ $ kubectl get po -o wide
NAME             READY     STATUS    RESTARTS   AGE       NODE
my-nginx-3w98h   0/1       Pending   0          56m
my-nginx-4fau8   0/1       Pending   0          56m
my-nginx-9zc4f   0/1       Pending   0          56m
my-nginx-fzz5i   0/1       Pending   0          56m
my-nginx-hqqpt   0/1       Pending   0          56m
my-nginx-pm2bo   0/1       Pending   0          56m
my-nginx-rf3tk   0/1       Pending   0          56m
my-nginx-v1dj3   0/1       Pending   0          56m
my-nginx-viiop   0/1       Pending   0          56m
my-nginx-yy23r   0/1       Pending   0          56m

the example rc :

core@core-1-85 ~ $ cat wk/rc-nginx.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: my-nginx
spec:
  replicas: 10
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
      - containerPort: 80

集群中节点状态为:

core@core-1-85 ~ $ kubectl get node
NAME         LABELS                              STATUS    AGE
10.12.1.90   kubernetes.io/hostname=10.12.1.90   Ready     37m
10.12.1.92   kubernetes.io/hostname=10.12.1.92   Ready     37m
10.12.1.93   kubernetes.io/hostname=10.12.1.93   Ready     37m
10.12.1.94   kubernetes.io/hostname=10.12.1.94   Ready     38m
10.12.1.95   kubernetes.io/hostname=10.12.1.95   Ready     38m
10.12.1.96   kubernetes.io/hostname=10.12.1.96   Ready     38m
10.12.1.97   kubernetes.io/hostname=10.12.1.97   Ready     38m
10.12.1.98   kubernetes.io/hostname=10.12.1.98   Ready     41m
core-1-89    kubernetes.io/hostname=core-1-89    Ready     22m

最佳答案

我找到了解决办法,原因是kube-apiserver、kube-controller-manager、kube-scheduler的版本与kubelet不匹配。

详情:https://github.com/kubernetes/kubernetes/issues/17154

关于kubernetes 没有可用于在 coreos 中调度 pod 的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33664847/

相关文章:

kubernetes - ClusterIP 服务是否在副本 Pod 之间分发请求?

Kubernetes - 允许具有命名空间的 ClusterRole 吗?

kubernetes - Helm 图中的点 "."是什么,以及哪些用例?

kubernetes - 只读 Kubernetes 用户

Nginx 入口 Controller 路径重写不起作用

kubernetes - 如何更改 Kubernetes pod tcp_keepalive

node.js - gcloud 中的 Kubectl 配置

mysql - Kubernetes MySQL Pod卡在CrashLoopBackOff

kubernetes - 创建后为什么某些Kubernetes的资源不可变?

google-cloud-platform - 通过kubernetes单节点集群创建服务不会给我 'ingress'外部IP,但是Google容器引擎可以(?)