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

Go 删除群集时删除所有关联的永久磁盘,go,google-cloud-platform,google-kubernetes-engine,google-persistent-disk,Go,Google Cloud Platform,Google Kubernetes Engine,Google Persistent Disk,根据文档,删除群集时,永久磁盘仍将存在()。我想在删除集群时删除所有关联的永久磁盘,但我不知道永久磁盘的名称/id。 Cluster get API没有关于磁盘和节点的任何信息 resp,err:=containerService.Projects.Zones.Clusters.Get(project,zone,cluster.Context(ctx).Do() 要运行节点名,则磁盘名与节点名相同。您可以在集群之后删除磁盘,但需要在删除之前运行kubectl get nodes。 还可以使用gc

根据文档,删除群集时,永久磁盘仍将存在()。我想在删除集群时删除所有关联的永久磁盘,但我不知道永久磁盘的名称/id。 Cluster get API没有关于磁盘和节点的任何信息

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

要运行节点名,则磁盘名与节点名相同。您可以在集群之后删除磁盘,但需要在删除之前运行kubectl get nodes。 还可以使用gcloud命令:gcloud compute disks description--zone|grep“id”获取磁盘id
遵循此链接了解有关如何删除群集磁盘的Google最佳实践:链接为了实现您想要的内容,以下Google文档将有助于使用两种方法通过Go API获取节点名称。对于StateTful集合,将创建以下格式的磁盘

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

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

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

可以用于识别磁盘,前提是正确的筛选器和格式是正确的

i、 e

列出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方法是

您是否使用有状态集?能否详细说明什么类型的磁盘?你指的是节点磁盘还是PV存储?默认情况下,节点磁盘具有相同的节点名称,如果您要查找的是相同的节点名称,请告诉我您是否也可以提供文档,在删除群集时,永久磁盘仍将存在?@Alioua,是的,我指的是与节点同名的永久磁盘。但是,由于节点是在集群创建中动态创建的,如何获取节点名称呢?我使用了get api,但没有此信息。@Alioua这是我在删除群集时引用的文档,我希望获得删除。我想用围棋。此外,您提供的链接不起作用或无法粘贴链接磁盘名称是节点名称(它们相同)是的,它们相同。但是如何通过GoAPI获得节点名@AliouaWith可以获取baseinstanceName并基于此删除。。。它不提供节点名称/id。此外,如果群集已被删除,该怎么办。@在删除群集之前,应使用这两种方法来获取磁盘名称。第一种方法是获取节点池的实例组管理器,第二种方法是从实例组管理器获取实例名称(请记住磁盘名称与节点名称相同)您可以在一个Golang脚本中使用这两种方法,首先在删除集群中获取磁盘名称,然后在一个脚本中删除所有这些之后的磁盘。请让我知道输出。@Alioua正如我前面提到的,get instanceGroupManager没有节点的名称/id。唯一相关的字段是baseInstanceName。这是我要引用的页面ng到Oh ok,那么这将为您提供实例名称字段。如果约定发生更改怎么办?而且,它不适用于具有长名称的群集。您如何使用GCP API进行此筛选?当我使用您在此处提到的相同筛选器时。给出API中的无效筛选器错误。
kubectl get pv -o custom-columns=K8sPV:.metadata.name,GCEDisk:spec.gcePersistentDisk.pdName