如何将 gke-gcloud-auth-plugin 与 gcloud 服务帐户密钥文件结合使用?

bon*_*omo 6 continuous-integration google-cloud-platform gcloud kubernetes kubectl

在 CI 中,使用 gcp auth 插件,我在执行 kubectl 命令之前使用 gcloud auth activate-service-account ***@developer.gserviceaccount.com --key-file ***.json。\n现在使用 gke-gcloud-auth -plugin 我可以\xe2\x80\x99t 找到任何等同于使用 gcp 服务帐户密钥文件的插件。\n我已经安装gke-gcloud-auth-plugingke-gcloud-auth-plugin --version正在给我Kubernetes v1.25.2-alpha+ae91c1fc0c443c464a4c878ffa2a4544483c6d1f\n你知道是否有\xe2\x80\x99s 的方法吗?

\n

我尝试添加此命令:\n kubectl config set-credentials my-user --auth-provider=gcp\n但我仍然得到:

\n
error: The gcp auth plugin has been removed. Please use the "gke-gcloud-auth-plugin" kubectl/client-go credential plugin instead.\n
Run Code Online (Sandbox Code Playgroud)\n

Ben*_*ing 20

在执行以下操作之前,您需要设置环境变量才能使用新插件get-credentials

export USE_GKE_GCLOUD_AUTH_PLUGIN=True
gcloud container clusters get-credentials $CLUSTER \
  --region $REGION \
  --project $PROJECT \
  --internal-ip
Run Code Online (Sandbox Code Playgroud)

我没想到仍然需要 env 变量(现在 gcp auth 插件已完全弃用) - 但看起来仍然如此。

如果正在使用新的身份验证提供程序,您的 kubeconfig 最终将如下所示。

...
- name: $NAME
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1beta1
      command: gke-gcloud-auth-plugin
      installHint: Install gke-gcloud-auth-plugin for use with kubectl by following
        https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke
      provideClusterInfo: true
Run Code Online (Sandbox Code Playgroud)

  • 遇到了同样的问题,尝试了这个答案 - 它有效。我和你一样惊讶仍然需要环境变量。 (2认同)