删除群集时删除所有关联的永久磁盘

时间:2020-01-09 00:07:22

标签: go google-cloud-platform google-kubernetes-engine google-persistent-disk

根据删除群集时的文档,永久磁盘将仍然存在(https://cloud.google.com/kubernetes-engine/docs/how-to/deleting-a-cluster)。删除群集时,我想删除所有关联的永久磁盘,但是我不知道永久磁盘的名称/ ID。 Cluster get API没有有关磁盘和节点的任何信息。

resp, err := containerService.Projects.Zones.Clusters.Get(project, zone, cluster).Context(ctx).Do()

4 个答案:

答案 0 :(得分:1)

如果解析了正确的过滤器和格式,

Cloud SDK可用于识别磁盘

要列出GKE正在使用的所有磁盘(可以在方便时更改the filter

using MyShmString = std::string

仅列出用作PVC的磁盘

gcloud compute disks list --format="table(name,users)" --filter="name~^gke-"

最后一条命令将列出已分离的PVC磁盘

gcloud compute disks list --format="table(name,users)" --filter="name~^gke-.*-pvc-.*"

为确保群集未使用分离的磁盘,请使用以下kubectl命令列出群集的PV及其GCE PD:

gcloud compute disks list --format="table(name,users)" --filter="name~^gke-.*-pvc-.* AND -users:*"

相应的API方法为disks.list

答案 1 :(得分:0)

要使节点名称运行,则磁盘名称与节点名称相同。您可以在集群之后删除磁盘,但是需要在删除之前运行kubectl get节点。 同样要获取磁盘ID,您可以使用gcloud命令:gcloud计算磁盘describe --zone | grep“ id” 按照此链接获取有关如何删除群集磁盘的Google最佳做法:链接

答案 2 :(得分:0)

为了实现您正在寻找的目标,以下Google文档将有助于使用两种方法通过Go API获得节点名称1 <nodeget> 2 <{{ 3}}>

答案 3 :(得分:0)

对于有状态集,将创建以下格式的磁盘

gke-standard-cluster-3-pvc-8586b7f8-37fd-11ea-beff-42010a80012a

其中standard-cluster-3将是集群的名称 和pvc-8586b7f8-37fd-11ea-beff-42010a80012a将成为您的卷的名称

也就是说,您可以使用此method来捕获有状态集创建的永久磁盘的名称。