识别Kubernetes创建的冗余GCP资源

时间:2018-07-05 09:00:40

标签: kubernetes google-cloud-platform gcloud google-kubernetes-engine

在GKE中创建各种Kubernetes对象时,将自动创建关联的GCP资源。我专门指的是:

  • forwarding-rules
  • target-http-proxies
  • url-maps
  • backend-services
  • health-checks

这些名称例如为k8s-fw-service-name-tls-ingress--8473ea5ff858586b

删除集群后,这些资源仍然保留。我该如何确定其中哪些仍在使用(由其他Kubernetes对象或另一个群集使用)而哪些尚未使用?

2 个答案:

答案 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”,如果您不知道名称,还可以使用各种过滤器机制通过名称空间等过滤资源,以将其删除。