3

kubectl我创建了一个 GKE 集群并通过运行在我的集群上单击“连接”按钮时出现的命令连接到它。

gcloud container clusters get-credentials cluster-name --zone us-central1-a --project project-id

$HOME/.kube/config我看到以下条目:

- name: cluster-name
  user:
    auth-provider:
      config:
        cmd-args: config config-helper --format=json
        cmd-path: /usr/lib64/google-cloud-sdk/bin/gcloud
        expiry-key: '{.credential.token_expiry}'
        token-key: '{.credential.access_token}'
      name: gcp

为了添加一个新的命名空间,我做了以下事情:

kubectl config use-context cluster-name
kubectl create namespace demo

这会导致错误:

error: No Auth Provider found for name "gcp"

我重复了在 Google Cloud shell 中添加凭据的步骤。在那里,我能够成功创建一个新的命名空间。我注意到,access-tokenandexpiry字段是可见的。

auth-provider:
      config:
        access-token: omitted
        cmd-args: config config-helper --format=json
        cmd-path: /google/google-cloud-sdk/bin/gcloud
        expiry: "2019-12-10T03:39:53Z"
        expiry-key: '{.credential.token_expiry}'
        token-key: '{.credential.access_token}'
      name: gcp

因此,如何获得正确gcloud containers cluster get-credentials更新我的命令kubeconfig

4

1 回答 1

1

我遇到了这个确切的问题,结果发现我的客户已经过时了。为客户端运行 v1.11 并且我的集群是 1.15+ 给了我no auth provider错误。

按照此处的说明升级到客户端 v1.18 并解决了我的问题。

于 2020-08-20T15:59:02.783 回答