首页 文章

在小人失败后,Kubenetes不会恢复服务

提问于
浏览
-1

我正在测试Kubernetes冗余功能,测试台由一个主人和三个爪牙组成 .

Case: 我正在运行一个服务,在第1和第2小兵上有3个副本,而minion3停止了

[root @ centos-master ajn]# kubectl get nodes

名称状态年龄centos-minion3 NotReady 14d centos-minion1准备好14d centos-minion2 Ready 14d

[root @ centos-master ajn]# kubectl describe pods $MYPODS | grep Node:

节点:centos-minion2 / 192.168.0.107节点:centos-minion1 / 192.168.0.155节点:centos-minion2 / 192.168.0.107

Test: 启动minion3并停止minion2(运行2个pod)

[root @ centos-master ajn]# kubectl get nodes

名称状态AGE centos-minion3准备15d centos-minion1准备14d centos-minion2 NotReady 14d

Result: 服务种类无法从小兵失败中恢复,Kubernetes继续在失败的小兵身上显示吊舱 .

[root @ centos-master ajn]# kubectl describe pods $MYPODS | grep Node:

节点:centos-minion2 / 192.168.0.107节点:centos-minion1 / 192.168.0.155节点:centos-minion2 / 192.168.0.107

Expected result (at least in my understanding): 该服务应该 Build 在当前可用的第1和第3部分上

据我所知,服务类型的作用是使部署“全局”可用,因此我们可以独立于集群中的部署位置来引用它们 .

难道我做错了什么?


我正在使用以下yaml规范:

apiVersion:v1
kind:ReplicationController
元数据:
名称:nginx-www
规格:
复制品:3
选择:
app:nginx
模板:
元数据:
标签:
app:nginx
规格:
容器:

  • 名称:nginx
    图片:nginx
    端口:
  • containerPort:80

1 回答

  • 1

    看起来你总是试图读取 $MYPODS 中引用的相同pod . Pod名称由ReplicationController动态创建,因此请尝试使用而不是 kubectl describe pods $MYPODS

    kubectl get pods -l app=nginx -o wide

    这将始终为您的应用提供当前计划的广告连播 .

相关问题