Kubernetes kubeadm init 由于拨号 tcp 127.0.0.1:10248: connect: 连接被拒绝而失败

Sta*_*s_S 10 vsphere kubernetes kubeadm

我正在尝试在 vSphere 私有云中设置一个非常简单的 2 节点 k8s 1.13.3 集群。VM 运行 Ubuntu 18.04。出于测试目的,防火墙已关闭。但由于连接被拒绝,初始化失败。除了端口被阻止之外,还有其他原因可能导致此问题吗?我是 k8s 的新手,正在尝试理解这一切。

\n\n

我已将 vsphere.conf 放置在 /etc/kubernetes/ 中,如本要点所示。\n https://gist.github.com/spstratis/0395073ac3ba6dc24349582b43894a77

\n\n

我还创建了一个配置文件以在运行时指向kubeadm init。这是其内容的示例。\n https://gist.github.com/spstratis/086f08a1a4033138a0c42f80aef5ab40

\n\n

当我运行时\nsudo kubeadm init --config /etc/kubernetes/kubeadminitmaster.yaml \nit 时,出现以下错误并超时。

\n\n
[kubelet-check] Initial timeout of 40s passed.\n[kubelet-check] It seems like the kubelet isn\'t running or healthy.\n[kubelet-check] The HTTP call equal to \'curl -sSL http://localhost:10248/healthz\' failed with error: Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused.\n
Run Code Online (Sandbox Code Playgroud)\n\n

检查sudo systemctl status kubelet显示 kubelet 正在运行。我暂时关闭了主虚拟机上的防火墙以进行测试,以便我可以验证集群是否会自行引导。

\n\n
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)\n  Drop-In: /etc/systemd/system/kubelet.service.d\n           \xe2\x94\x94\xe2\x94\x8010-kubeadm.conf\n   Active: active (running) since Sat 2019-02-16 18:09:58 UTC; 24s ago\n     Docs: https://kubernetes.io/docs/home/\n Main PID: 16471 (kubelet)\n    Tasks: 18 (limit: 4704)\n   CGroup: /system.slice/kubelet.service\n           \xe2\x94\x94\xe2\x94\x8016471 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cloud-config=/etc/kubernetes/vsphere.conf --cloud-provider=vsphere --cgroup-driver=systemd --network-plugin=cni --pod-i\n
Run Code Online (Sandbox Code Playgroud)\n\n

下面是一些附加日志,显示与https://192.168.0.12:6443/的连接的连接被拒绝。所有这些似乎都会导致 kubelet 失败并阻止 init 进程完成。

\n\n
    Feb 16 18:10:22 k8s-master-1 kubelet[16471]: E0216 18:10:22.633721   16471 kubelet.go:2266] node "k8s-master-1" not found\n    Feb 16 18:10:22 k8s-master-1 kubelet[16471]: E0216 18:10:22.668213   16471 reflector.go:134] k8s.io/kubernetes/pkg/kubelet/kubelet.go:453: Failed to list *v1.Node: Get https://192.168.0.12:6443/api/v1/nodes?fieldSelector=metadata.name%3Dk8s-master-1&limit=500&resourceVersion=0: dial tcp 192.168.0.1\nFeb 16 18:10:22 k8s-master-1 kubelet[16471]: E0216 18:10:22.669283   16471 reflector.go:134] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: Failed to list *v1.Service: Get https://192.168.0.12:6443/api/v1/services?limit=500&resourceVersion=0: dial tcp 192.168.0.12:6443: connect: connection refused\n    Feb 16 18:10:22 k8s-master-1 kubelet[16471]: E0216 18:10:22.670479   16471 reflector.go:134] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Get https://192.168.0.12:6443/api/v1/pods?fieldSelector=spec.nodeName%3Dk8s-master-1&limit=500&resourceVersion=0: dial tcp 192.1\n    Feb 16 18:10:22 k8s-master-1 kubelet[16471]: E0216 18:10:22.734005   16471 kubelet.go:2266] node "k8s-master-1" not found\n
Run Code Online (Sandbox Code Playgroud)\n

小智 17

为了解决该错误(拨打 tcp 127.0.0.1:10248: connect: 连接被拒绝。),请运行以下命令:

sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo kubeadm reset
sudo kubeadm init
Run Code Online (Sandbox Code Playgroud)

如果在配置工作节点时出现相同的错误,请使用相同的命令。

  • 您能否对这些命令的作用提供更多解释?这将帮助未来的读者了解如何解决_类似_(但不是_相同_)的问题。如果读者首先了解自己在做什么,也将帮助他们在自己的系统上更轻松地执行这些操作。 (3认同)