Ошибка проверки готовности в переплетении кубернетес
У меня есть кластер, где у меня есть 10 рабочих узлов Raspberry pi
и мастер работает на Ubuntu 16.04
, Кажется, все работает нормально, но иногда модуль, работающий на узле, показывает ошибку ниже:
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')"
Может кто-нибудь, пожалуйста, помогите мне, как решить эту проблему.
0 ответов
Что сработало для меня, так это добавить iptable
правила с диапазоном IP моего kube-dns
служба.
# 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]#
Поскольку IP-адрес kube-dns равен 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
Подробнее об этой проблеме можно прочитать здесь.