编织 kubernetes 中的就绪探测失败错误

Readiness probe failed error in weave kubernetes

我有一个集群,其中我在 Raspberry pi 上有 10 个工作节点,主节点是 运行 在 Ubuntu 16.04 上。一切似乎都工作正常,但有时节点上的 pod 运行 显示以下错误:

Warning FailedCreatePodSandBox 18m (x3 over 18m) kubelet, w188 (combined from similar events): Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "6fa511fb1d292702aa99318b785f5011307601868ff2520c542515a239924c16" network for pod "deployment-6w24f": NetworkPlugin cni failed to set up pod "deployment-6w24f_aps-namespace" network: unable to allocate IP address: Post http://127.0.0.1:6784/ip/6fa511fb1d292702aa99318b785f5011307601868ff2520c542515a239924c16: dial tcp 127.0.0.1:6784: connect: connection refused

我正在使用 weave 进行网络连接,它在 kube 仪表板上显示以下错误:

Readiness probe failed: Get http://127.0.0.1:6784/status: dial tcp 127.0.0.1:6784: connect: connection refused Back-off restarting failed container MountVolume.SetUp failed for volume "weave-net-token-txqhk" : couldn't propagate object cache: timed out waiting for the condition

节点显示此错误,一段时间后它自动开始正常工作。这种情况不时发生在多个节点上。我使用以下命令来初始化集群并编织:

sudo kubeadm init --token-ttl=0 --apiserver-advertise-address=192.168.8.12

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

任何人都可以指导我如何解决这个问题。

对我有用的是添加 iptable 规则与我的 kube-dns 服务的 IP 范围。

# kubectl get svc -n kube-system 
NAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   16m
[root@master kubernetes]# 

由于 kube-dns 的 IP 是 10.96.0.10 那么 iptable 规则的有效范围将是 10.96.0.1/32

# iptables -t nat -I KUBE-SERVICES -d 10.96.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-MARK-MASQ

可以找到有关此问题的更多信息 here