GKE:节点重新启动/pods 丢失
GKE : node restarted / pods missing
美好的一天,
运行 单节点集群。注意到一夜之间我所有的 pods 都不见了。
kubectl get events
什么都没给我。
检查节点
# kubectl get no
NAME STATUS AGE
gke-sg-etl-4ff0f964-node-jny8 Ready 20d
检查节点上的容器我注意到有些系统容器只运行了 21 小时,而有些则需要 2 周:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b451ef51174d gcr.io/google_containers/glbc:0.6.0 "/glbc --default-back" 21 hours ago Up 21 hours k8s_l7-lb-controller.96ad8505_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_9af0cd81
86483feba88c gcr.io/google_containers/defaultbackend:1.0 "/server" 21 hours ago Up 21 hours k8s_default-http-backend.33869026_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_1fffdcaf
73bc0bbd18a1 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.364e00d5_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_6b0f3678
95f0bdb6b87c gcr.io/google_containers/exechealthz:1.0 "/exechealthz '-cmd=n" 21 hours ago Up 21 hours k8s_healthz.2bec1471_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_4e729ced
efde9c110e3c gcr.io/google_containers/skydns:2015-10-13-8c72f8c "/skydns -machines=ht" 21 hours ago Up 21 hours k8s_skydns.66853ac4_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_10c173ea
0db98a8b6b83 gcr.io/google_containers/kube2sky:1.14 "/kube2sky --domain=c" 21 hours ago Up 21 hours k8s_kube2sky.4e15015f_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_23182cb4
c103d90e1bd9 gcr.io/google_containers/etcd-amd64:2.2.1 "/usr/local/bin/etcd " 21 hours ago Up 21 hours k8s_etcd.6d563523_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_987562c7
3b21c42444de gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.e2764897_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_08f0734a
7e642f5a1fe0 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.0.0 "/dashboard --port=90" 21 hours ago Up 21 hours k8s_kubernetes-dashboard.deca92bd_kubernetes-dashboard-v1.0.0-whzec_kube-system_19ab34c7-0056-11e6-a3f3-42010af0003e_433eec1f
2d0f5f11ad65 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.3a1c00d7_kubernetes-dashboard-v1.0.0-whzec_kube-system_19ab34c7-0056-11e6-a3f3-42010af0003e_0dfc9856
c210ea10b8ea gcr.io/google_containers/heapster:v1.0.0 "/heapster --source=k" 21 hours ago Up 21 hours k8s_heapster.ce50f137_heapster-v1.0.0-el2r7_kube-system_1994710e-0056-11e6-a3f3-42010af0003e_b63303ac
a449b69dd498 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.6059dfa2_heapster-v1.0.0-el2r7_kube-system_1994710e-0056-11e6-a3f3-42010af0003e_3a238507
b9eaaa1cae94 gcr.io/google_containers/fluentd-gcp:1.18 "/bin/sh -c '/usr/sbi" 2 weeks ago Up 2 weeks k8s_fluentd-cloud-logging.fe59dd68_fluentd-cloud-logging-gke-sg-etl-4ff0f964-node-jny8_kube-system_da7e41ef0372c29c65a24b417b5dd69f_dd3f0627
我知道节点可能已经重启了。
我从哪里可以了解为什么会发生这种情况?我的解释是这是正常的,但我还是想了解一下(pods 是 "pets",而不是 "cattle")。
我怀疑这是由于机器重启造成的,因为那时我希望 fluentd-gcp 也重新启动。
在这种情况下,您可以探索一些途径,但我没有一个总能告诉您答案的单一答案。以下是您可以尝试的一些方法:
- 运行
kubectl get pods -a
,这将 return 所有 pods 包括不再 运行ning 的。如果 pods 必须由他们的控制器重新创建,您应该能够看到终止状态
不再 运行ning 的那些。
- SSH 到节点并 运行
last | grep boot
查看上次启动的时间。
- SSH 到节点并 运行
docker ps -a
查看所有容器,包括那些已经停止 运行ning 的容器。如果有一些停止 运行ning,请使用 docker logs
或 docker inspect
. 调查它们
- SSH 到节点并调查 /var/log/kubelet.log 文件以查看它是否有关于 pods 为何重新启动的任何提示。
美好的一天,
运行 单节点集群。注意到一夜之间我所有的 pods 都不见了。
kubectl get events
什么都没给我。
检查节点
# kubectl get no
NAME STATUS AGE
gke-sg-etl-4ff0f964-node-jny8 Ready 20d
检查节点上的容器我注意到有些系统容器只运行了 21 小时,而有些则需要 2 周:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b451ef51174d gcr.io/google_containers/glbc:0.6.0 "/glbc --default-back" 21 hours ago Up 21 hours k8s_l7-lb-controller.96ad8505_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_9af0cd81
86483feba88c gcr.io/google_containers/defaultbackend:1.0 "/server" 21 hours ago Up 21 hours k8s_default-http-backend.33869026_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_1fffdcaf
73bc0bbd18a1 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.364e00d5_l7-lb-controller-v0.6.0-keutx_kube-system_5ecb8fe7-0054-11e6-a3f3-42010af0003e_6b0f3678
95f0bdb6b87c gcr.io/google_containers/exechealthz:1.0 "/exechealthz '-cmd=n" 21 hours ago Up 21 hours k8s_healthz.2bec1471_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_4e729ced
efde9c110e3c gcr.io/google_containers/skydns:2015-10-13-8c72f8c "/skydns -machines=ht" 21 hours ago Up 21 hours k8s_skydns.66853ac4_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_10c173ea
0db98a8b6b83 gcr.io/google_containers/kube2sky:1.14 "/kube2sky --domain=c" 21 hours ago Up 21 hours k8s_kube2sky.4e15015f_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_23182cb4
c103d90e1bd9 gcr.io/google_containers/etcd-amd64:2.2.1 "/usr/local/bin/etcd " 21 hours ago Up 21 hours k8s_etcd.6d563523_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_987562c7
3b21c42444de gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.e2764897_kube-dns-v11-ce2vc_kube-system_1c42c00f-0056-11e6-a3f3-42010af0003e_08f0734a
7e642f5a1fe0 gcr.io/google_containers/kubernetes-dashboard-amd64:v1.0.0 "/dashboard --port=90" 21 hours ago Up 21 hours k8s_kubernetes-dashboard.deca92bd_kubernetes-dashboard-v1.0.0-whzec_kube-system_19ab34c7-0056-11e6-a3f3-42010af0003e_433eec1f
2d0f5f11ad65 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.3a1c00d7_kubernetes-dashboard-v1.0.0-whzec_kube-system_19ab34c7-0056-11e6-a3f3-42010af0003e_0dfc9856
c210ea10b8ea gcr.io/google_containers/heapster:v1.0.0 "/heapster --source=k" 21 hours ago Up 21 hours k8s_heapster.ce50f137_heapster-v1.0.0-el2r7_kube-system_1994710e-0056-11e6-a3f3-42010af0003e_b63303ac
a449b69dd498 gcr.io/google_containers/pause:2.0 "/pause" 21 hours ago Up 21 hours k8s_POD.6059dfa2_heapster-v1.0.0-el2r7_kube-system_1994710e-0056-11e6-a3f3-42010af0003e_3a238507
b9eaaa1cae94 gcr.io/google_containers/fluentd-gcp:1.18 "/bin/sh -c '/usr/sbi" 2 weeks ago Up 2 weeks k8s_fluentd-cloud-logging.fe59dd68_fluentd-cloud-logging-gke-sg-etl-4ff0f964-node-jny8_kube-system_da7e41ef0372c29c65a24b417b5dd69f_dd3f0627
我知道节点可能已经重启了。
我从哪里可以了解为什么会发生这种情况?我的解释是这是正常的,但我还是想了解一下(pods 是 "pets",而不是 "cattle")。
我怀疑这是由于机器重启造成的,因为那时我希望 fluentd-gcp 也重新启动。
在这种情况下,您可以探索一些途径,但我没有一个总能告诉您答案的单一答案。以下是您可以尝试的一些方法:
- 运行
kubectl get pods -a
,这将 return 所有 pods 包括不再 运行ning 的。如果 pods 必须由他们的控制器重新创建,您应该能够看到终止状态 不再 运行ning 的那些。 - SSH 到节点并 运行
last | grep boot
查看上次启动的时间。 - SSH 到节点并 运行
docker ps -a
查看所有容器,包括那些已经停止 运行ning 的容器。如果有一些停止 运行ning,请使用docker logs
或docker inspect
. 调查它们
- SSH 到节点并调查 /var/log/kubelet.log 文件以查看它是否有关于 pods 为何重新启动的任何提示。