繁体   English   中英

如何使用 python 删除 GKE(Google Kubernetes 引擎)集群?

[英]How to delete GKE (Google Kubernetes Engine) cluster using python?

我是 GKE-Python 的新手。 我想使用 python 脚本删除我的 GKE(Google Kubernetes 引擎)集群。 我从google-cloud-container python 库中找到了一个 API delete_cluster()来删除 GKE 集群。 https://googleapis.dev/python/container/latest/index.html

但我不确定如何通过在 python 中传递所需的参数来使用 API。 任何人都可以用一个例子来解释我吗?

或者如果还有其他方法可以删除 python 中的 GKE 集群?

提前致谢。

页面包含您尝试执行的命令的示例。

要提供命令成功所需的更多详细信息 - 您的环境需要包含环境变量,此页面包含有关如何执行此操作的说明。

一旦您的环境成功通过身份验证,我们就可以像这样运行删除集群命令 -

from google.cloud import container_v1

client = container_v1.ClusterManagerClient()

response = client.delete_cluster(name=projects/<project>/locations/<location>/clusters/<cluster>)

首先,您需要为 Google Kubernetes 引擎配置 Python 客户端,如您共享的链接的本节所述。 基本上,设置一个虚拟环境并使用pip install google-cloud-container安装库。

如果您在Cloud Shell等环境中运行脚本,并且用户具有足够的访问权限来管理 GKE 资源(至少分配了Kubernetes 引擎集群管理员权限),客户端库将自动处理来自脚本的必要身份验证并且以下脚本很可能会起作用:

from google.cloud import container_v1

project_id = "YOUR-PROJECT-NAME" #Change me. 
zone = "ZONE-OF-THE-CLUSTER" #Change me.
cluster_id = "NAME-OF-THE-CLUSTER" #Change me.
name = "projects/"+project_id+"/locations/"+zone+"/clusters/"+cluster_id

client = container_v1.ClusterManagerClient()

response = client.delete_cluster(name=name)

print(response)

请注意,根据delete_cluster方法文档,您只需要传递name参数。 如果由于某种原因您只是获得了具有足够权限以删除集群的服务帐户的凭据(通常以 JSON 文件的形式),您需要修改脚本的客户端并使用凭据参数来获取客户端以类似的方式正确验证:

...
client = container_v1.ClusterManagerClient(credentials=credentials)
...

credentials变量指向具有足够权限的服务帐户凭据文件的 JSON 文件名(以及路径,如果它不在运行脚本的文件夹中)。

最后请注意, delete_cluster方法返回的response变量是操作 class的操作,它可以用于监视长时间运行的操作,其方式与此处解释的方式类似,其中self_link属性对应于长时间运行的操作。

运行脚本后,您可以使用类似于以下方式的 curl 命令:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://container.googleapis.com/v1/projects/[RPOJECT-NUMBER]/zones/[ZONE-WHERE-THE-CLUSTER-WAS-LOCATED]/operations/operation-[OPERATION-NUMBER]

通过检查对该 curl 命令的响应的status字段(可能在 RUNNING state 中)。 或者您也可以使用requests库或任何等效库来自动执行脚本中长时间运行操作的检查过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM