我创建了一个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-token
和expiry
字段是可见的。
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
?
答案 0 :(得分:0)
我遇到了这个确切的问题,结果发现我的客户已经过时了。为客户端和集群运行v1.11时,我的集群为1.15+,这给了我no auth provider
错误。
按照here的说明进行操作,以了解客户端v1.18并解决了我的问题。