【问题标题】:Kubernetes Engine API delete podKubernetes Engine API 删除 pod
【发布时间】:2019-12-27 19:53:22
【问题描述】:
我需要删除我的 GCP kubernetes 集群上的 POD。实际上,在 Kubernetes Engine API documentation 中,我只能找到 REST api 的:projects.locations.clusters.nodePools,但没有找到 POD。
【问题讨论】:
标签:
kubernetes
google-cloud-platform
google-kubernetes-engine
terraform-provider-gcp
【解决方案1】:
GKE API 用于在基础架构级别管理集群本身。要管理 Kubernetes 资源,您必须使用 Kubernetes API。有各种语言的客户端,当然你也可以直接调用API。
从另一个或同一个 Pod 中删除一个 Pod:
PODNAME=ubuntu-xxxxxxxxxx-xxxx
curl https://kubernetes/api/v1/namespaces/default/pods/$PODNAME \
-X DELETE -k \
-H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
从外部,您必须使用公共 Kubernetes API 服务器 URL 和有效令牌。以下是使用kubectl 的方法:
APISERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
TOKEN=$(kubectl get secret $(kubectl get serviceaccount default -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode )
这里有更多关于访问Kubernetes API server的官方信息。