我已将gcloud更新到最新版本(159.0.0)
我创建了一个Google容器引擎节点,然后按照提示中的说明进行操作。
gcloud container clusters get-credentials prod --zone us-west1-b --project myproject
Fetching cluster endpoint and auth data.
kubeconfig entry generated for prod
kubectl proxy
Unable to connect to the server: error executing access token command
"/Users/me/Code/google-cloud-sdk/bin/gcloud ": exit status
知道为什么它无法连接?
答案 0 :(得分:4)
您可以尝试运行以查看配置是否已正确生成:
kubectl config view
尝试在刚刚在Google Cloud Platform上创建的新Kubernetes群集上运行kubectl命令时,我遇到了类似的问题。
我的案例的解决方案是激活 Google应用程序默认凭据。
您可以在下面找到有关如何激活它的链接。
基本上,您需要使用GCP的凭据将环境变量设置为.json的路径
从Google Cloud导出的GOOGLE_APPLICATION_CREDENTIALS -> c:\...\..\..Credentials.json
https://developers.google.com/identity/protocols/application-default-credentials
我在kuberenetes github问题上找到了这个解决方案:https://github.com/kubernetes/kubernetes/issues/30617
PS:确保您还设置了环境变量: %HOME%到%USERPROFILE% %KUBECONFIG%到%USERPROFILE%
答案 1 :(得分:4)
看起来GKE的默认auth插件可能在Windows上出错。 kubectl正在尝试运行gcloud来获取令牌以对您的群集进行身份验证。如果你运行kubectl config view
,你可以看到它试图运行的命令,并自己运行它以查看它是否失败。
正如Alexandru所说,解决方法是使用Google Application Default Credentials。实际上,gcloud容器内置支持这样做,您可以通过设置属性来切换:
gcloud config set container/use_application_default_credentials true
或设置环境变量
%CLOUDSDK_CONTAINER_USE_APPLICATION_DEFAULT_CREDENTIALS%
至true
。
答案 2 :(得分:0)
使用GKE,更新对我有用的“ Kubernetes Engine /群集”管理中的凭据。
集群行提供“连接”按钮,可将凭据命令复制到控制台中。然后刷新使用的令牌。然后,kubectl再次起作用。 为什么我的令牌过期了?好吧,我想GCP令牌不是永恒的。
因此,该按钮自动播放与以下命令相同的命令: gcloud容器集群获取凭据您的集群...
布鲁诺