gcloud不添加用于连接到GKE集群的访问令牌

时间:2019-12-10 03:52:56

标签: kubernetes google-cloud-platform gcloud kubeconfig

我创建了一个GKE集群,并用kubectl连接到它,然后运行了对集群单击“连接”按钮时出现的命令。

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-tokenexpiry字段是可见的。

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

1 个答案:

答案 0 :(得分:0)

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

按照here的说明进行操作,以了解客户端v1.18并解决了我的问题。