Statefulset 在明确知道一个 pod 不再运行之前, 它不能或者不应该创建一个替换 pod.
- 需要 admin 告诉 Statefulseet
10.5.1 模拟一个节点的网络断开
关闭节点的网络适配器
- 登录一个节点

- 关闭网络接口

通过 Kubernetes 管理节点检查节点的状态
观察节点状态:

查看 pod 状态:

当一个 pod 状态为 Unknow 时会发生什么
- node 重新连接后, pod 会被重新标记为 Runing
- 如果 pod 持续未知状态几分钟后 (时间可配置), 这个 pod 就会自动从节点上驱逐
- Kubelet 发现 pod 被标记删除后, 将会停止该 pod
查看未知状态的 pod 的详情:

注意:
- 离线的 node 上的 pod 可能还在运行
10.5.2 手动删除 pod
正常删除 pod

查看 pod:
- 下面 kubia-0 是旧的 pod

为什么 pod 没有被删除
- 手动删除 pod 前, k8s 已标记了删除
- k8s 需要 kubelet 的反馈才能彻底删除
强制删除 pod
不必等待 kubelet 反馈:

查看删除结果:

恢复网络:
$ gcloud compute instances reset <node name>
