Kubeadm init 在镜像拉取时停止

Kubeadm init stops at image pulling

我在使用 kubeadm..

初始化 master 时遇到了一些问题

我正在尝试关注 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/。我安装了 dockerkubeletkubeadmkubectl

现在我执行了kubeadm init,但是它停在了[init] This might take a minute or longer if the control plane images have to be pulled.

我查看了 journalctl 并发现:Unable to update cni config: No networks found in /etc/cni/net.dFailed to list *v1.Pod: Get https://10.159.43.30:6443/api/v1/pods?fieldSelector=spec.nodeName%3Deskubernv01&limit=500&resourceVersion=0: dial tcp 10.159.43.30:6443: getsockopt: connection refused

我尝试用 kubectl apply -f https://git.io/weave-kube 设置 weave-net 但它无法连接:The connection to the server localhost:8080 was refused - did you specify the right host or port?.

我无法复制 admin.conf 应该允许我从 /etc/kubernates 连接的文件,因为 kubeadm init 失败所以这些不是正确的文件。

我觉得我在这里陷入了循环,我错过了一些东西。

我现在别无选择。有什么想法吗?

我找到了出路。

如果有人遇到这样的问题 - 检查 docker 日志。

在我的例子中,它是未为 docker 服务设置的代理。 为了设置它,我使用了:

  1. 为 docker 服务创建一个 systemd drop-in 目录: $ sudo mkdir -p /etc/systemd/system/docker.service.d
  2. 创建一个名为 /etc/systemd/system/docker.service.d/http-proxy.conf 的文件,添加 HTTP_PROXY 环境变量: [Service] Environment="HTTP_PROXY=http://proxy.example.com:80/"

来源:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

我在安装kubeadm,kubectl,kubelet时指定版本[1.9.7-00]解决了,像这样:

# ----- Install kubernetes -----
# kubeadm docs: https://kubernetes.io/docs/setup/independent/install-kubeadm/
echo " "
echo - Installing Kubernetes...
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet=1.9.7-00 kubeadm=1.9.7-00 kubectl=1.9.7-00

注意 kubelet=1.9.7-00 kubeadm=1.9.7-00 kubectl=1.9.7-00