Docker Swarm:Calico 节点 pod 不健康

Docker Swarm: Calico node pod is unhealthy

详情:

OS: RHEL 7.4

uname -r: 3.10.0-693.el7.x86_64

Docker版本

Client: Docker Enterprise Edition (EE) 2.0
 Version:       17.06.2-ee-10
 API version:   1.30
 Go version:    go1.8.7
 Git commit:    66261a0
 Built: Fri Apr 27 00:38:41 2018
 OS/Arch:       linux/amd64

Server: Docker Enterprise Edition (EE) 2.0
 Engine:
  Version:      17.06.2-ee-10
  API version:  1.30 (minimum version 1.12)
  Go version:   go1.8.7
  Git commit:   66261a0
  Built:        Fri Apr 27 00:40:03 2018
  OS/Arch:      linux/amd64
  Experimental: false

错误

Calico-node pod is unhealthy: %!s(<nil>)

我正在尝试将节点作为工作人员加入 docker swarm 集群。但是我在健康状态检查中遇到了一个错误。导致节点无法加入swarm集群。

期望的结果必须是成功将节点添加到 swarm 集群。

问候 阿迪亚

我 运行 在我的测试环境中遇到了同样的问题。

在我的例子中,当我将节点加入 swarm 时,结果是 运行 磁盘不足 space。

确保您的主机 /var/lib/docker 中有足够的可用空间 space。

如果 ucp-calico-cni "/install-cni.sh" 启动然后突然失败,您将能够判断这是否是问题所在。

您可以通过执行以下操作来查看:

  1. 从swarm中移除节点:

    docker swarm leave
    
  2. 然后加上你的URL:

    docker swarm join --token SWMTKN-1-0le10al9t1coov7c23mg28gcviozrr1ggueqwlyjt51i7gpefd-5xxre29bwafxg0xud1abcdefg 192.168.0.191:2377
    
  3. 那么马上开始:

    watch "docker ps"
    

您应该看到一个 ucp-pause,然后是 ucp-calico-cni 进程。

如果启动然后失败 - 那么 space 可能是您的问题。

一个成功的启动应该是这样的:

34ed65e25213        docker/ucp-calico-cni        "/install-cni.sh"        8 seconds ago       Up 7 seconds
                          k8s_install-cni_calico-node-c2zd5_kube-system_ce6396d7-b16b-11e8-b3c7-0242ac11000b_0
21e1e3ff96f0        docker/ucp-calico-node       "start_runit"            14 seconds ago      Up 13 seconds
                          k8s_calico-node_calico-node-c2zd5_kube-system_ce6396d7-b16b-11e8-b3c7-0242ac11000b_0
a206f3242319        docker/ucp-pause:3.0.3       "/pause"                 29 seconds ago      Up 27 seconds
                          k8s_POD_calico-node-c2zd5_kube-system_ce6396d7-b16b-11e8-b3c7-0242ac11000b_0
840a48831f1b        docker/ucp-agent:3.0.3       "/bin/ucp-agent agent"   35 seconds ago      Up 29 seconds             2376/tcp
                          ucp-agent.u0a7uoqgrav90039vbvj43qt8.kdlov8fvojxjo291dph3ihcm2
74acd9eaabba        docker/ucp-hyperkube:3.0.3   "kubelet --allow-p..."   36 seconds ago      Up 35 seconds
                          ucp-kubelet
6f196e802795        docker/ucp-hyperkube:3.0.3   "kube-proxy --clus..."   36 seconds ago      Up 35 seconds
                          ucp-kube-proxy
1e695e3ac165        docker/ucp-agent:3.0.3       "/bin/ucp-agent pr..."   37 seconds ago      Up 36 seconds (healthy)   0.0.0.0:6444->6444/tcp, 0.0.0.0:12378->12378/tcp, 0.0.0.0:12376->2376/tcp   ucp-proxy

我能够通过 cd/proc/sys/net/ipv4/conf/all 解决问题。如果rp_filter2,则将值修改为10。完成后,执行 :wq.

现在节点必须毫无问题地加入网络。

此致

克里斯特