我正在运行Ubuntu 16.0.4。
我正在使用kubeadm
启动Kubernetes群集。
我目前正在使用kubeadm init
初始化主节点。
我收到以下错误:
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10255/healthz' failed with error: Get http://localhos
t:10255/healthz: dial tcp 127.0.0.1:10255: getsockopt: connection refused.
我已关闭交换,并在删除以前apt-get install docker.io
docker-ce
的{{1}}安装后,使用apt-get remove docker-ce && apt-get autoremove --purge docker-ce
安装了docker。
我知道有些人如果安装了docker-ce
并且他们已经开始使用新环境(参见https://github.com/kubernetes/kubernetes/issues/55281),就会遇到问题。我真的想避免这样做。
我怎样才能超越这个错误?
感谢。
更新。正在运行journalctl -u kubelet -f
:
error: failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is different from docker cgroup driver: "systemd"
这让我相信我需要
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF
我使用docker
systemctl restart docker
然后使用kubeadm reset && kubeadm init
这有效并解决了我的问题。
我想指出,kubeadm
说明似乎告诉你目前要做的事情完全不同。
他们告诉你这样做:
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
这让我走上了错误的道路。
之后我没有看到说明:
Or ensure the --cgroup-driver kubelet flag is set to the same value as Docker (e.g. cgroupfs).
谢谢!
`
答案 0 :(得分:1)
查看错误我认为你应该看到@David建议的日志。现在你的设置无法命中在127.0.0.1:10255上运行的kubelet。这里有10255端口。
所以我认为你的kubelet没有正确安装或配置。我建议你通过点击命令&#34; service kubelet restart&#34;重新启动kubelet。然后运行&#34; kubeadm reset&#34;清理损坏的设置,最后&#34; kubeadm init&#34;。 还有一点,我想在这里添加虽然它与你的问题无关,但你应该添加&#34; - pod-network-cidr =&#34;用kubeadm init。许多网络插件都要求这样做。
答案 1 :(得分:0)
我的系统需要
cat << EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
EOF