在 Docker 容器内 Kubectl 给出无法连接到服务器:拨号 tcp i/o 超时

问题描述

我正在尝试学习本教程 https://www.youtube.com/watch?v=9EUyMjR6jSc。我在 Ubuntu 20.04LTS 上工作,我安装了 k3d,这是 ~/.kube/config 信息

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://192.168.0.13:16443
  name: k3d-dev
contexts:
- context:
    cluster: k3d-dev
    user: admin@k3d-dev
  name: k3d-dev
current-context: k3d-dev
kind: Config
preferences: {}
users:
- name: admin@k3d-dev
  user:
    client-certificate-data:...
    client-key-data:...

Docker 版本是 Version: 20.10.2。 根据教程,我需要运行一个 halyard 容器,并且在容器内我可以访问本地 kubernetes(在本例中为 k3d)。 halyard 容器带有 kubectl,所以我只需要使用上述信息创建一个 ~/.kube/config,但我仍然收到无法连接到服务器的消息。 如果我运行 kubectl cluster-info

,我会在获取此信息时启动并运行集群
Kubernetes control plane is running at https://192.168.0.13:16443
coredns is running at https://192.168.0.13:16443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Metrics-server is running at https://192.168.0.13:16443/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy

在吊索容器内

bash-5.0$ kubectl version
Client Version: version.Info{Major:"1",Minor:"15",GitVersion:"v1.15.10",GitCommit:"1bea6c00a7055edef03f1d4bb58b773fa8917f11",GitTreeState:"clean",BuildDate:"2020-02-11T20:13:57Z",GoVersion:"go1.12.12",Compiler:"gc",Platform:"linux/amd64"}
Unable to connect to the server: dial tcp 192.168.0.13:16443: I/O timeout
bash-5.0$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://192.168.0.13:16443
  name: k3d-dev
contexts:
- context:
    cluster: k3d-dev
    user: admin@k3d-dev
  name: k3d-dev
current-context: k3d-dev
kind: Config
preferences: {}
users:
- name: admin@k3d-dev
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
bash-5.0$ kubectl config current-context
k3d-dev

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)