升级Helm Chart至GKE遇gke-gcloud-auth-plugin缺失错误,求解决
解决helm阶段找不到gke-gcloud-auth-plugin的问题
问题核心是cloud-sdk与helm属于两个独立运行环境(比如不同容器),cloud-sdk中安装的插件、设置的环境变量不会自动同步到helm环境,导致helm执行时找不到插件。以下是几种可行的解决方式:
方式一:在helm环境中安装gke-gcloud-auth-plugin
如果helm阶段使用自定义镜像,可在镜像构建时加入插件安装步骤(以debian系镜像为例):
FROM helm:latest RUN apt-get update && apt-get install -y google-cloud-sdk-gke-gcloud-auth-plugin
如果是临时执行helm命令,可先安装插件再运行helm:
- apt-get update && apt-get install -y google-cloud-sdk-gke-gcloud-auth-plugin - helm version - export KUBECONFIG=kube.conf - export USE_GKE_GCLOUD_AUTH_PLUGIN=True - helm upgrade $HELM_CHART_NAME ./chart --install --values=./chart/$ENVIRONMENT.yaml --namespace $KUBE_NAMESPACE
方式二:在helm阶段设置必要的环境变量
确保helm阶段开启USE_GKE_GCLOUD_AUTH_PLUGIN变量,该变量会告知kubectl(helm依赖kubectl)使用新认证插件,修改helm阶段命令如下:
- helm version - export KUBECONFIG=kube.conf - export USE_GKE_GCLOUD_AUTH_PLUGIN=True - helm upgrade $HELM_CHART_NAME ./chart --install --values=./chart/$ENVIRONMENT.yaml --namespace $KUBE_NAMESPACE
方式三:临时切换回旧认证方式(不推荐长期使用)
如果暂时无法在helm环境安装插件,可在cloud-sdk阶段获取凭证时强制使用旧认证机制,生成的kube.conf将不再依赖gke-gcloud-auth-plugin:
- export USE_GKE_GCLOUD_AUTH_PLUGIN=False - export KUBECONFIG=kube.conf && gcloud container clusters get-credentials $GCP_CLUSTER --zone $GCP_LOCATION --project $GCP_PROJECT
注意:GCP官方会逐步淘汰旧认证方式,长期来看建议优先使用前两种方式。
内容的提问来源于stack exchange,提问作者tryingToBeBetter
相关产品推荐
相关产品推荐

