尝试在kubectl
本地运行时出现以下错误.
error: couldn't read version from server: Get http://localhost:8080/api: dial tcp 127.0.0.1:8080: connection refused
我知道这与kubectl配置有关,但我对如何解决它感到茫然.2天前,我正在尝试使用GKE并确实将配置设置为指向GCE.我尝试删除此配置文件,然后在本地使用CoreOS获取Vagrant.这vagrant up
引发了类似的错误,抱怨无法连接.
什么是适当的仪器方法,kubectl
以便它可以连接到API并返回信息?
src*_*der 13
TL;博士 gcloud container get-credentials --cluster=CLUSTER_ID --zone=YOURZONE
所以有一点背景:kubectl工具是谷歌开发的,但实际上并没有直接集成到谷歌云中,当你告诉它安装组件时,谷歌云只是帮助你获得兼容的版本.
如果你得到Get http://localhost:8080/api: dial tcp 127.0.0.1:8080: connection refused
它可能是由于该kubectl
工具根本没有配置或配置错误.我认为它试图做的是假设你只在某种程度上在本地设置kubernetes,在这种情况下你不会,因为它都在谷歌云上(因此神秘的错误).
您可以通过运行来验证您的kubectl配置错误kubectl config view
.如果配置正确,您应该看到群集中的一些条目,带有IP地址,在用户中,您应该看到每个项目的用户,等等.如果您没有看到任何排序(即空簇和空用户)然后你的配置错误; 如果您没有看到正在尝试处理的特定群集的条目,您还会遇到神秘的问题.
令人讨厌的是,许多gcloud
命令会默默地为你自动配置它,所以如果你按照像hello wordpress教程这样的东西看起来你不必这样做,并且某种程度上kubectl与gcloud进行通信,但没有任何类似的事情发生.丢失该配置也很容易.
要告诉gcloud给你kubectl配置运行以下内容:
gcloud container get-credentials --cluster=CLUSTER_ID --zone=YOURZONE
Run Code Online (Sandbox Code Playgroud)
命令的"beta"部分可能会在将来消失.
对于群集ID运行 gcloud container clusters list
区域是"欧洲西部1-d"或您选择的任何东西.
过去曾经如此beta
,但情况已不再如此.所以命令现在是:
gcloud container clusters get-credentials <cluster-name> --zone=<zone-of-cluster> --project=<project-id>
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用该beta
命令运行它,则会收到以下错误消息:
警告:您调用了
gcloud beta
,但使用当前配置时,将使用Kubernetes Engine v1 API代替v1beta1 API.gcloud beta
将在2018年3月底之前默认使用Kubernetes Engine v1beta1 API.
如果您希望在群集之间切换kubectl
(仅适用于已经过身份验证的群集),您可以使用:
kubectl config use-context gke_<project-name>_<zone>_<cluster>
Run Code Online (Sandbox Code Playgroud)
例:
kubectl config use-context gke_my-project_europe-west1-c_my-cluster
Run Code Online (Sandbox Code Playgroud)
要查看您目前的位置:
kubectl config current-context
Run Code Online (Sandbox Code Playgroud)
干杯
小智 6
上述解决方案不再有效.您需要执行以下操作:
gcloud container clusters get-credentials <cluster-name> \
[--zone=<zone-of-cluster> --project=<project-id>]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7817 次 |
最近记录: |