#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