Модули Kubernetes не могут разрешить интернет-адреса

#kubernetes #coredns

#kubernetes #ядра

Вопрос:

я создал кластер Kubernetes с использованием kubeadm на Ubuntu 16.04 в моей домашней лаборатории с 1 основным и 2 узлами с Calico в качестве CNI. все узлы могут разрешать интернет-адреса на своих консолях, но проблема, которую я замечаю, заключается в том, что модули, которые я развертываю, не имеют доступа к Интернету. CoreDNS, похоже, работает нормально. при этом есть ли что-то конкретное, что мне нужно сделать или настроить в кластере Kubernetes, чтобы развертываемые модули имели доступ к Интернету по умолчанию?

 cloudadmin@vra-vmwlab-cloud-vm-318:~$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name:      kubernetes.default
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
  
 cloudadmin@vra-vmwlab-cloud-vm-318:~$ kubectl exec -ti busybox -- ping google.com
ping: bad address 'google.com'
from the busybox Pod i can see its pointing to the right dns ip but still it cant reach google.com as you see above
  
 cloudadmin@vra-vmwlab-cloud-vm-318:~$ kubectl exec -ti busybox -- sh
/ # cat /etc/resolv.conf

nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local vmwlab.local
options ndots:5
  

любая помощь по этому вопросу приветствуется. Спасибо

Комментарии:

1. Я бы попробовал выполнить следующие шаги: kubernetes.io/docs/tasks/administer-cluster /…

2. Может быть, на ваших узлах установлены правила брандмауэра для блокировки исходящего трафика? Я думаю, что у @Howard_Roark есть очень хорошая точка зрения, проверка общих проблем всегда является первым шагом. После этого … есть много чего узнать о CNI 😉

3. я уже прошел через шаги по устранению неполадок Говарда Рорка. на всех узлах отключен FW, включая главный. я могу нормально разрешать с узлов, но не с модулей, которые я развертываю

4. 1. Каковы ваши версии kubernetes и calico? 2. Не могли бы вы попробовать провести эти тесты на другом изображении, а не на busybox? Насколько я проверил здесь , busybox не учитывает настройки DNS надлежащим образом. 3. Не могли бы вы попробовать с другим CNI? 4. Вы добавили --pod-network-cidr в свою команду инициализации kubeadm?

Ответ №1:

Исправлена проблема..

в документации https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm / в нем упоминается следующее :

 Letting iptables see bridged traffic 
Make sure that the br_netfilter module is loaded. This can be done by running lsmod | grep br_netfilter. To load it explicitly call sudo modprobe br_netfilter.

As a requirement for your Linux Node's iptables to correctly see bridged traffic, you should ensure net.bridge.bridge-nf-call-iptables is set to 1 in your sysctl config, e.g.

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
  

Я также решил использовать Weave Net вместо calico в качестве CNI