当前位置: 首页 > 知识库问答 >
问题:

Kubernetes节点无法到达后的pods重新调度

施锋
2023-03-14

如果一个节点没有响应(可能是由于过载或网络问题),那么Kubernetes是否可以在原来的pod仍在运行的情况下在另一个节点上重新安排一个pod?

似乎其中一些行为已经明确指定,但我不知道如何验证它,除非在云提供商上设置多个节点并尝试它。

共有1个答案

劳星晖
2023-03-14

如果一个节点没有响应,Kubernetes>=1.5将不会重新调度具有相同标识的pod,直到确认它已经被终止。关于StatefulSet的行为在这里详细说明。

Kubernetes(版本1.5或更新)不会仅仅因为某个节点无法访问而删除豆荚。在无法到达的节点上运行的豆荚在超时后进入“终止”或“未知”状态。当用户试图优雅地删除不可达节点上的Pod时,Pod也可以进入这些状态。从apiserver中删除处于这种状态的Pod的唯一方法如下:

  • 节点对象被删除(由您或节点控制器)。
  • 无响应节点上的kubelet开始响应,杀死Pod,并从apiserver中删除条目。
  • 强制用户删除豆荚。
 类似资料:
  • 我有一个Kubernetes集群。这些节点位于具有IPs的内部网中,pod网络范围为。 问题是,一些工作节点在其他节点上有无法到达的pod网络路由,例如: 我尝试重新启动一个中断的节点,将其从集群中删除,运行,然后重新加入它。但一切都保持不变。 可能的原因是什么?我应该如何解决这个问题?提前多谢。

  • 我有kubernetes集群,有3个主人和7个工人。我用印花布做CNI。当我部署Calico时,calico-kube-controllers-xxx失败,因为它不能达到10.96.0.1:443。 这是kube-system名称空间中的情况: 集群pod cidr为192.168.0.0/16。

  • 我正在运行一个自我管理的Kubernetes集群1.18.1。我已经部署了一些带有持久性卷的POD(基于longhorn项目)。现在,在做了一些测试之后,我观察到以下行为: 如果我模拟一个节点的硬关机,过了一段时间(5分钟),Kubernetes就会识别出丢失,并开始重新调度节点从死亡节点到另一个节点。 因为我的节点具有持久性卷,所以新的POD永远不会启动。原因是旧的pod(在死节点上)现在在终止

  • 库伯内特斯的 pod 无法更新基于 Debian 的存储库。 我已经在下面的步骤中设置了k8s集群。 使用Kubernetes官方链接 > https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ https://kubernetes . io/docs/setup/producti

  • 使用复制控制器,当我调度一个pod的2个(两个)副本时,我期望每个节点中各有1个(一个)副本。相反,我发现两个副本都是在同一个吊舱中创建的。这将使1个节点成为我需要避免的单点故障。 对于2个pod:节点A中的1个pod,节点B中的1个pod 对于3个吊舱:节点A中的2个吊舱,节点B中的1个吊舱,kubernetes可以根据资源可用性进行调度 有没有正确配置的建议吗?

  • 工作节点1上的Curl对群集IP来说是最合适的(这是运行pod的节点) Curl在其他工作节点上也失败: