在Ubuntu上使用`kubeadm`进行群集安装。使用`getsockopt:连接被拒绝'

时间:2018-01-21 20:51:53

标签: kubernetes kubeadm

我正在运行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).

谢谢!

`

2 个答案:

答案 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