无法连接到Google容器引擎

时间:2017-06-20 03:39:19

标签: google-cloud-platform google-kubernetes-engine

我已将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 

知道为什么它无法连接?

3 个答案:

答案 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容器集群获取凭据您的集群...

布鲁诺