Kubernetes突然无法连接到服务器

Kubernetes突然无法连接到服务器,kubernetes,gcloud,Kubernetes,Gcloud,我成功地连接到kubernetes集群并使用服务和POD。有一次,这种情况发生了变化,每次我尝试连接到群集时,都会出现以下错误: PS C:\Users\xxx> kubectl get pods Unable to connect to the server: error parsing output for access token command "C:\\Program Files (x86)\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\g

我成功地连接到kubernetes集群并使用服务和POD。有一次,这种情况发生了变化,每次我尝试连接到群集时,都会出现以下错误:

PS C:\Users\xxx> kubectl get pods
Unable to connect to the server: error parsing output for access token command "C:\\Program Files (x86)\\Google\\Cloud SDK\\google-cloud-sdk\\bin\\gcloud.cmd config config-helper --format=json": yaml: line 4: could not find expected ':'
我不确定问题是什么。不幸的是,谷歌也没有给我任何结果

我没有更改任何配置文件或任何东西。这是一个一秒钟工作,下一秒钟不工作的问题


谢谢。

看起来GKE的默认身份验证插件在windows上可能有问题。kubectl正在尝试运行gcloud以获取令牌,以便对集群进行身份验证。如果您运行kubectl config view,您可以看到它试图运行的命令,并亲自运行它,查看是否/为什么失败

正如Alexandru所说,解决方法是使用Google应用程序默认凭据。实际上,gcloud容器内置了对该操作的支持,您可以通过设置属性来切换:

gcloud config set container/use\u application\u default\u credentials true尝试运行此或set环境变量

%CLOUDSDK\u容器\u使用\u应用程序\u默认\u凭据%为true

引用自

此问题的解决方法是:


gcloud容器群集获取凭据如果您不知道您的群集名称,请通过gcloud容器群集列表查找凭据最后,如果没有问题,请执行gcloud auth应用程序默认登录并使用相关详细信息登录,这为我提供了一些指导。不幸的是,它没有解决这个问题。如果我运行错误抛出的命令,说它不起作用,我就会得到它所寻找的内容,即凭证JSON文件。访问和id标记都在那里,文件本身也打开得很好。命令:gcloud config help-format=json在哪里可以更改环境变量?是否导出CLOUDSDK\u容器\u使用\u应用程序\u默认\u凭据=trueOh!你正在使用windows。setx CLOUDSDK\u CONTAINER\u USE\u APPLICATION\u DEFAULT\u CREDENTIALS True将其输入命令行,在命令行中键入kubectl get pods。您确实希望安装powershell并熟悉它。如果您不知道群集名称,请告诉我gcloud容器群集get CREDENTIALS的输出。最后,通过gcloud容器群集列表查找它,如果没有问题,请使用gcloud auth应用程序默认登录并使用相关详细信息登录