You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CI环境中使用gke-gcloud-auth-plugin结合GCP服务账号密钥文件?

解决GKE-GCloud-Auth-Plugin使用服务账号密钥的问题

以下是CI环境下的可行解决方案,步骤清晰易操作:

1. 加载服务账号密钥

先通过环境变量指定服务账号密钥的路径,CI环境中如果密钥是以字符串变量存储的,可先写入临时文件:

# 如果密钥是CI变量字符串,先写入临时文件
echo "$CI_SERVICE_ACCOUNT_KEY" > /tmp/service-account-key.json
# 指定密钥路径环境变量
export GOOGLE_APPLICATION_CREDENTIALS="/tmp/service-account-key.json"

如果密钥文件直接存在于CI环境中,直接设置环境变量即可:

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"

2. 自动生成含插件配置的kubeconfig

不要手动设置--auth-provider=gcp,直接用gcloud命令生成适配新插件的kubeconfig:

gcloud container clusters get-credentials 你的集群名称 --zone 集群所在区域 --project GCP项目ID

这条命令会自动配置kubeconfig,让kubectl调用gke-gcloud-auth-plugin完成认证,无需手动修改auth-provider配置。

3. 强制启用插件(可选)

如果执行上述命令后仍报错,添加环境变量强制启用新插件:

export USE_GKE_GCLOUD_AUTH_PLUGIN=True

该变量会让gcloud和kubectl优先使用独立的gke-gcloud-auth-plugin,而非已移除的内置GCP认证模块。

4. 验证配置

执行基础kubectl命令测试认证是否生效:

kubectl get nodes

补充说明

旧的kubectl config set-credentials --auth-provider=gcp是针对已废弃的内置GCP认证插件,新的gke-gcloud-auth-plugin属于独立的credential plugin,必须通过gcloud container clusters get-credentials生成的配置来调用,或手动在kubeconfig的users段配置exec字段指定插件路径(不推荐手动配置,容易出错)。

内容的提问来源于stack exchange,提问作者bonomo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:10:28