gpt4 book ai didi

ubuntu - Kubernetes 服务在一个节点宕机后停止

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:04 24 4
gpt4 key购买 nike

我正在使用一个 VM(主)和 3 个裸机服务器(全部运行 Ubuntu 14.04)设置一个小型 Kubernetes 集群。我关注了 Kubernetes install tutorial for Ubuntu .每个裸机服务器还有 2T 的磁盘空间使用 Ceph 0.94.5 导出.一切正常,但当一个节点无法启动(它无法挂载分区)时,集群提供的唯一服务也停止工作。我运行一些命令:

$ kubectl get nodes
NAME LABELS STATUS
10.70.2.1 kubernetes.io/hostname=10.70.2.1 Ready,SchedulingDisabled
10.70.2.2 kubernetes.io/hostname=10.70.2.2 Ready
10.70.2.3 kubernetes.io/hostname=10.70.2.3 NotReady
10.70.2.4 kubernetes.io/hostname=10.70.2.4 Ready

它只是表明我有一个节点宕机了。

$ kubectl get pods
NAME READY STATUS RESTARTS AGE
java-mysql-5v7iu 1/1 Running 1 5d
java-site-vboaq 1/1 Running 0 4d

$ kubectl get services
NAME LABELS SELECTOR IP(S) PORT(S)
java-mysql name=java-mysql name=java-mysql ***.***.3.12 3306/TCP
java-site name=java-site name=java-site ***.***.3.11 80/TCP
kubernetes component=apiserver,provider=kubernetes <none> ***.***.3.1 443/TCP

它显示所有 pod 和服务都工作正常。但是,我无法连接到其中一个 pod (java-site-vboaq):

$ kubectl exec java-site-vboaq -i -t -- bash
error: Error executing remote command: Error executing command in container: container not found ("java-site")

但是,pods 甚至没有在宕机的节点上运行:

$ kubectl describe pod java-mysql-5v7iu
Image(s): mysql:5
Node: 10.70.2.2/10.70.2.2
Status: Running

$ kubectl describe pod java-site-vboaq
Image(s): javasite-img
Node: 10.70.2.2/10.70.2.2
Status: Running

宕机节点(10.70.2.3)恢复后,一切恢复正常。

如何解决这个问题?如果某个节点出现故障,我希望 Kubernetes 相应地迁移 pod 并保持服务正常运行。这是否与宕机节点卡在引导中(等待分区挂载)而不是 100% 宕机有关?

最佳答案

这里有几个潜在的问题:1) Ceph 需要其节点启动并运行才能访问:您是说节点正在从不同的 Ceph 集群安装磁盘,还是 Ceph 集群在相同的节点上运行?如果相同的节点,那么驱动器不可访问使 K8s 瘫痪是有道理的。

2) 有一个错误(至少它在 1.0.6 上存在,但不确定是否已解决)关于当尝试安装已安装在不同节点上的磁盘时 pod 无法启动,因为它从未被卸载过。这是一个需要关注的 K8s 问题(抱歉,现在似乎找不到链接)

3) 如果 etcd 只有 2 个节点,它也可能在等待节点 3 时卡住,因为它需要多数票才能选出 master。

关于ubuntu - Kubernetes 服务在一个节点宕机后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com