使用谷歌容器引擎,没有节点可用于安排pod

Ale*_*zzi 3 kubernetes google-kubernetes-engine

我遇到了一个问题,我想要运行的容器似乎没有在我的集群上启动.

我已经尝试过寻找可能的解决方案,但是有一个令人惊讶的缺乏信息来帮助解决这个问题或者它的任何性质.

这是我能收集到的最多的东西:

$ kubectl describe pods/elasticsearch
Name:               elasticsearch
Namespace:          default
Image(s):           my.image.host/my-project/elasticsearch
Node:               /
Labels:             <none>
Status:             Pending
Reason:             
Message:            
IP:             
Replication Controllers:    <none>
Containers:
  elasticsearch:
    Image:  my.image.host/my-project/elasticsearch
    Limits:
      cpu:      100m
    State:      Waiting
    Ready:      False
    Restart Count:  0
Events:
  FirstSeen             LastSeen            Count   From   SubobjectPath    Reason          Message
  Mon, 19 Oct 2015 10:28:44 -0500   Mon, 19 Oct 2015 10:34:09 -0500 12  {scheduler }            failedScheduling    no nodes available to schedule pods
Run Code Online (Sandbox Code Playgroud)

我也看到了这个:

$ kubectl get pod elasticsearch -o wide
NAME            READY     STATUS    RESTARTS   AGE       NODE
elasticsearch   0/1       Pending   0          5s        
Run Code Online (Sandbox Code Playgroud)

我想我想知道:存在哪些先决条件以便我可以确信我的容器将在容器引擎中运行?在这种情况下我需要做什么才能让它运行?

这是我的yml档案:

apiVersion: v1
kind: Pod
metadata:
  name: elasticsearch
spec:
  containers:
    - name: elasticsearch
      image: my.image.host/my-project/elasticsearch
      ports:
        - containerPort: 9200

  resources:
    volumeMounts:
      - name: elasticsearch-data
        mountPath: /usr/share/elasticsearch
  volumes:
    - name: elasticsearch-data
      gcePersistentDisk:
        pdName: elasticsearch-staging
        fsType: ext4
Run Code Online (Sandbox Code Playgroud)

这是关于我的节点的更多输出:

$ kubectl get nodes
NAME                                           LABELS                                                                STATUS
gke-elasticsearch-staging-00000000-node-yma3   kubernetes.io/hostname=gke-elasticsearch-staging-00000000-node-yma3   NotReady
Run Code Online (Sandbox Code Playgroud)

Rob*_*ley 5

您的群集中只有一个节点及其状态NotReady.所以你将无法安排任何豆荚.您可以通过查看来确定节点未准备就绪的原因/var/log/kubelet.log.您还可以向群集中添加新节点(将群集大小扩展到2)或删除节点(它将自动替换为实例组管理器),以查看这些选项中的任何一个是否为您提供了工作节点.