使用Google容器引擎

时间:2015-10-19 16:25:20

标签: 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

我也看到了这个:

$ kubectl get pod elasticsearch -o wide
NAME            READY     STATUS    RESTARTS   AGE       NODE
elasticsearch   0/1       Pending   0          5s        

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

这是我的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

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

$ kubectl get nodes
NAME                                           LABELS                                                                STATUS
gke-elasticsearch-staging-00000000-node-yma3   kubernetes.io/hostname=gke-elasticsearch-staging-00000000-node-yma3   NotReady

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

调度程序似乎无法在群集中看到任何节点。您可以运行kubectl get nodesgcloud compute instances list来确认群集中是否有任何节点。在创建群集时是否正确指定了节点数(--num-nodes)?