【发布时间】:2020-04-03 05:03:24
【问题描述】:
我创建了一个 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?
【问题讨论】:
-
您有什么理由运行
kubectl config use-context cluster-name命令吗?目前尚不清楚您的问题是什么,以及您要做什么。 -
你在哪里运行这些命令?在您的本地终端?在运行
gcloud container clusters get-credentials之前是否运行gcloud auth login进行身份验证? -
是的,这些命令是在我的本地终端上运行的。是的,
gcloud auth login是在获取凭据之前运行的。 -
“gcloud container clusters get-credentials”很可能出现问题,您能否将'--verbosity="debug"' flag 添加到命令中并分享它的输出?
-
好的。在metime中,发现了一个与我面临的问题类似的问题。我不确定,但我会按照答案 - stackoverflow.com/a/48182401/919480
标签: kubernetes google-cloud-platform gcloud kubeconfig