无法删除 Kubernetes 中节点的底层虚拟机
Can't delete underlying VM for a node in Kubernetes
我是 运行 GCE 上的一个三节点集群。我想耗尽一个节点并删除底层 VM。
kubectl drain
命令的文档说:
Once it returns (without giving an error), you can power down the node (or equivalently, if on a cloud platform, delete the virtual machine backing the node)
我执行以下命令:
获取节点
$ kl get nodes
NAME STATUS AGE
gke-jcluster-default-pool-9cc4e660-6q21 Ready 43m
gke-jcluster-default-pool-9cc4e660-rx9p Ready 6m
gke-jcluster-default-pool-9cc4e660-xr4z Ready 23h
排水节点rx9p
.
$ kl drain gke-jcluster-default-pool-9cc4e660-rx9p --force
node "gke-jcluster-default-pool-9cc4e660-rx9p" cordoned
WARNING: Deleting pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: fluentd-cloud-logging-gke-jcluster-default-pool-9cc4e660-rx9p, kube-proxy-gke-jcluster-default-pool-9cc4e660-rx9p
node "gke-jcluster-default-pool-9cc4e660-rx9p" drained
删除 gcloud 虚拟机。
$ gcloud compute instances delete gke-jcluster-default-pool-9cc4e660-rx9p
列出虚拟机。
$ gcloud compute instances list
结果,我看到了上面删除的 VM - rx9p
。如果我这样做 kubectl get nodes
,我也会看到 rx9p 节点。
这是怎么回事?正在重新启动我正在删除的虚拟机?我是否必须等待命令之间的超时?
首先排空节点是正确的。
节点(计算实例)是 managed instance group 的一部分。如果您使用 gcloud compute instances delete
命令仅删除它们,托管实例组将重新创建它们。
要正确删除一个,请使用此命令(在你耗尽它之后!):
gcloud compute instance-groups managed delete-instances \
gke-jcluster-default-pool-9cc4e660-grp \
--instances=gke-jcluster-default-pool-9cc4e660-rx9p \
--zone=...
我是 运行 GCE 上的一个三节点集群。我想耗尽一个节点并删除底层 VM。
kubectl drain
命令的文档说:
Once it returns (without giving an error), you can power down the node (or equivalently, if on a cloud platform, delete the virtual machine backing the node)
我执行以下命令:
获取节点
$ kl get nodes NAME STATUS AGE gke-jcluster-default-pool-9cc4e660-6q21 Ready 43m gke-jcluster-default-pool-9cc4e660-rx9p Ready 6m gke-jcluster-default-pool-9cc4e660-xr4z Ready 23h
排水节点
rx9p
.$ kl drain gke-jcluster-default-pool-9cc4e660-rx9p --force node "gke-jcluster-default-pool-9cc4e660-rx9p" cordoned WARNING: Deleting pods not managed by ReplicationController, ReplicaSet, Job, DaemonSet or StatefulSet: fluentd-cloud-logging-gke-jcluster-default-pool-9cc4e660-rx9p, kube-proxy-gke-jcluster-default-pool-9cc4e660-rx9p node "gke-jcluster-default-pool-9cc4e660-rx9p" drained
删除 gcloud 虚拟机。
$ gcloud compute instances delete gke-jcluster-default-pool-9cc4e660-rx9p
列出虚拟机。
$ gcloud compute instances list
结果,我看到了上面删除的 VM -
rx9p
。如果我这样做kubectl get nodes
,我也会看到 rx9p 节点。
这是怎么回事?正在重新启动我正在删除的虚拟机?我是否必须等待命令之间的超时?
首先排空节点是正确的。
节点(计算实例)是 managed instance group 的一部分。如果您使用 gcloud compute instances delete
命令仅删除它们,托管实例组将重新创建它们。
要正确删除一个,请使用此命令(在你耗尽它之后!):
gcloud compute instance-groups managed delete-instances \
gke-jcluster-default-pool-9cc4e660-grp \
--instances=gke-jcluster-default-pool-9cc4e660-rx9p \
--zone=...