Docker for Desktop Kubernetes 无法连接到服务器:拨打 tcp [::1]:6445
Docker for Desktop Kubernetes Unable to connect to the server: dial tcp [::1]:6445
我在 Windows 10 Professional 和 Hyper-V 上使用 Docker for Desktop,我也没有使用 minikube。我已经通过 Docker for Desktop 安装了 Kubernetes 集群,如下图:
说明Kubernetes已经安装成功,运行ning。
当我运行以下命令时:
kubectl config view
我得到以下输出:
apiVersion: v1
clusters:
- cluster:
insecure-skip-tls-verify: true
server: https://localhost:6445
name: docker-for-desktop-cluster
contexts:
- context:
cluster: docker-for-desktop-cluster
user: docker-for-desktop
name: docker-for-desktop
current-context: docker-for-desktop
kind: Config
preferences: {}
users:
- name: docker-for-desktop
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
然而当我 运行
kubectl cluster-info
我收到以下错误:
Unable to connect to the server: dial tcp [::1]:6445: connectex: No connection could be made because the target machine actively refused it.
好像是网络问题,不知道怎么解决。
我知道这是一个老问题,但以下内容帮助我解决了类似的问题。根本原因是我之前安装了 minikube 并且它被用作我的默认上下文。
我收到以下错误:
Unable to connect to the server: dial tcp 192.168.1.8:8443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
在power-shell运行下面命令:
> kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-desktop docker-desktop docker-desktop
docker-for-desktop docker-desktop docker-desktop
* minikube minikube minikube
这将列出所有上下文并查看是否有多个。如果您过去安装过 minikube,则会显示一个 * 标记作为当前选择的默认上下文。您可以将其更改为指向 docker-desktop 上下文,如下所示:
> kubectl config use-context docker-desktop
运行 get-contexts 命令再次验证 * 标记。
现在,下面的命令应该可以工作了:
> kubectl get pods
发布对这个非常老的问题的回复,因为我正在寻找解决方案,后来发现我的问题有不同的原因,而且解决方案很简单。
原因是 $HOME$/.kube 目录中缺少配置文件
Docker 桌面的简单重启恢复了一些默认值的文件,一切都恢复正常。
旁注:在我将 Docker 桌面安装升级到最新版本后(当我收到可用更新弹出窗口时),问题开始了。我还应该提到集群停止工作,我不得不手动删除 Docker 桌面并重新安装最新版本(这是问题发生之前的故事)。
我在 Windows 10 Professional 和 Hyper-V 上使用 Docker for Desktop,我也没有使用 minikube。我已经通过 Docker for Desktop 安装了 Kubernetes 集群,如下图:
说明Kubernetes已经安装成功,运行ning。
当我运行以下命令时:
kubectl config view
我得到以下输出:
apiVersion: v1
clusters:
- cluster:
insecure-skip-tls-verify: true
server: https://localhost:6445
name: docker-for-desktop-cluster
contexts:
- context:
cluster: docker-for-desktop-cluster
user: docker-for-desktop
name: docker-for-desktop
current-context: docker-for-desktop
kind: Config
preferences: {}
users:
- name: docker-for-desktop
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
然而当我 运行
kubectl cluster-info
我收到以下错误:
Unable to connect to the server: dial tcp [::1]:6445: connectex: No connection could be made because the target machine actively refused it.
好像是网络问题,不知道怎么解决。
我知道这是一个老问题,但以下内容帮助我解决了类似的问题。根本原因是我之前安装了 minikube 并且它被用作我的默认上下文。 我收到以下错误:
Unable to connect to the server: dial tcp 192.168.1.8:8443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
在power-shell运行下面命令:
> kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-desktop docker-desktop docker-desktop
docker-for-desktop docker-desktop docker-desktop
* minikube minikube minikube
这将列出所有上下文并查看是否有多个。如果您过去安装过 minikube,则会显示一个 * 标记作为当前选择的默认上下文。您可以将其更改为指向 docker-desktop 上下文,如下所示:
> kubectl config use-context docker-desktop
运行 get-contexts 命令再次验证 * 标记。
现在,下面的命令应该可以工作了:
> kubectl get pods
发布对这个非常老的问题的回复,因为我正在寻找解决方案,后来发现我的问题有不同的原因,而且解决方案很简单。
原因是 $HOME$/.kube 目录中缺少配置文件
Docker 桌面的简单重启恢复了一些默认值的文件,一切都恢复正常。
旁注:在我将 Docker 桌面安装升级到最新版本后(当我收到可用更新弹出窗口时),问题开始了。我还应该提到集群停止工作,我不得不手动删除 Docker 桌面并重新安装最新版本(这是问题发生之前的故事)。