在GKE中创建各种Kubernetes对象时,将自动创建关联的GCP资源。我专门指的是:
forwarding-rules
target-http-proxies
url-maps
backend-services
health-checks
这些名称例如为k8s-fw-service-name-tls-ingress--8473ea5ff858586b
。
删除集群后,这些资源仍然保留。我该如何确定其中哪些仍在使用(由其他Kubernetes对象或另一个群集使用)而哪些尚未使用?
答案 0 :(得分:1)
没有简单的方法来确定哪些添加的GCP资源(LB,后端等)链接到了哪个群集。您需要手动进入这些资源以查看它们的链接。
如果删除附加了附加资源的集群,则还必须手动删除这些资源。目前,我建议您注意哪些添加的GCP资源与哪个群集有关,以便在删除GKE群集时知道要删除哪些资源。
我还建议创建一个功能请求here,以请求为链接到特定集群的其他GCP资源创建更定义的命名约定,和/或能够自动删除所有链接的附加资源删除群集时将其添加到群集。
答案 1 :(得分:0)
我建议您看看https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/14-cleanup.md
您可以通过以下方式使用google cloud sdk轻松删除所有对象:
gcloud -q compute firewall-rules delete \
kubernetes-the-hard-way-allow-nginx-service \
kubernetes-the-hard-way-allow-internal \
kubernetes-the-hard-way-allow-external \
kubernetes-the-hard-way-allow-health-check
{
gcloud -q compute routes delete \
kubernetes-route-10-200-0-0-24 \
kubernetes-route-10-200-1-0-24 \
kubernetes-route-10-200-2-0-24
gcloud -q compute networks subnets delete kubernetes
gcloud -q compute networks delete kubernetes-the-hard-way
gcloud -q compute forwarding-rules delete kubernetes-forwarding-rule \
--region $(gcloud config get-value compute/region)
gcloud -q compute target-pools delete kubernetes-target-pool
gcloud -q compute http-health-checks delete kubernetes
gcloud -q compute addresses delete kubernetes-the-hard-way
}
这假设您将资源命名为“ kubernetes-the-hard-way”,如果您不知道名称,还可以使用各种过滤器机制通过名称空间等过滤资源,以将其删除。