0

我有一个包含 3 个节点的集群,我想在单个节点丢失后快速恢复。通过恢复,我的意思是我在一段合理的时间(最好是可配置的)后恢复与我的服务的通信。

以下是各种细节:

k8s版本:

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.7", GitCommit:"8eb75a5810cba92ccad845ca360cf924f2385881", GitTreeState:"clean", BuildDate:"2017-04-27T10:00:30Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.7", GitCommit:"8eb75a5810cba92ccad845ca360cf924f2385881", GitTreeState:"clean", BuildDate:"2017-04-27T09:42:05Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

我有一个分布在所有 3 个节点上的服务。在一个节点失败的情况下,我观​​察到以下行为:

  1. api 服务器故障转移到另一个节点,kubernetes 服务端点显示正确的 IP 地址(自定义故障转移)。
  2. api 服务器没有响应10.100.0.1(其集群 IP)
  3. 一段时间后,所有相关的服务端点都被清除(例如,kubectl get ep --namespace=kube-system显示没有所有端点的就绪地址)
  4. 有问题的服务在服务 IP 上不可用(由于上述原因)

ready该服务具有就绪/活跃度探测,并且在任何给定时间只有一个实例存在live。我已经检查了应该可用的实例是否也可用 - 即两者ready/ live

在丢失节点上运行的服务 Pod 收到状态之前,这将持续超过 15 分钟NodeLost,此时端点被重新填充,我可以像往常一样访问该服务。

我试过摆弄pod-eviction-timeout,node-monitor-grace-period设置无济于事 - 时间总是大致相同。

因此,我的问题:

  1. 在节点丢失的情况下,我在哪里可以详细了解关键 k8s 组件的行为?
  2. 什么是参数组合来减少集群协调所需的时间,因为这应该在测试中使用?
4

0 回答 0