2

根据删除集群时的文档,永久磁盘仍然存在(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

4 回答 4

2

如果解析了正确的过滤器和格式,则可以使用Cloud SDK来识别磁盘

IE

列出 GKE 使用的所有磁盘(您可以在方便时更改过滤器)

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

仅列出用作 PVC 的磁盘

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

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

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

为了确保集群不使用分离的磁盘,这里有一个 kubectl 命令来列出集群的 PV 及其 GCE PD:

kubectl get pv -o custom-columns=K8sPV:.metadata.name,GCEDisk:spec.gcePersistentDisk.pdName

对应的API方法是disks.list

于 2020-01-31T22:12:20.170 回答
0

为了实现您正在寻找的内容,以下谷歌文档将有助于使用两种方法通过 Go API 获取节点名称1 < nodeget > 2 < instagroupget >

于 2020-01-15T01:31:34.500 回答
0

要获取节点名称 run ,则磁盘名称与节点名称相同。您可以在集群之后删除磁盘,但您需要在删除之前运行 kubectl get nodes。另外要获取磁盘 ID,您可以使用 gcloud 命令:gcloud compute disks describe --zone < ZONE> | grep "id" 按照此链接获取有关如何删除集群磁盘的 Google 最佳实践:link

于 2020-01-10T00:13:18.080 回答
0

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

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

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

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

于 2020-01-16T02:10:45.257 回答