Сетевое подключение Weavenet от Pod к услуге (Kubernetes 1.9 с kubeadm)
У меня есть локальный 3-узловой кластер Kubernetes, с weave-Net в качестве установленного плагина Overlay-Network-Plugin. Моя цель - опробовать сетевые политики kubernetes и экспортировать сообщения журнала этого процесса в elk-стек.
К сожалению, я не могу продолжить, потому что я не могу решить свои проблемы с kube-dns. Разрешение имени, кажется, работает, но сетевое подключение от модуля к службе проблематично.
Вот некоторые факты о моей настройке (см. Ниже для версий / общих деталей конфигурации):
- Я залогинен в стручок
busybox
" - У меня есть служба под названием "
nginx
", связанный с модулем nginx, который работает и работает - Из busybox я не могу пропинговать днс:
25 packets transmitted, 0 packets received, 100% packet loss
Если я попробую
nslookup nginx
" Я получил:Server: 10.96.0.10 Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local Name: nginx Address 1: 10.104.126.131 nginx.default.svc.cluster.local
Также я изменил файл config-Pod на busybox-Pod вручную, чтобы сделать разрешение имен без полного доменного имени:
/ # cat /etc/resolv.conf nameserver 10.96.0.10 search default.svc.cluster.local svc.cluster.local cluster.local nginx XXX.XXX.de options ndots:5
Это не похоже на хороший обходной путь для меня, но по крайней мере он работает, и nslookup выдает мне правильный IP-адрес nginx-Service:
user@controller:~$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx ClusterIP 10.104.126.131 <none> 80/TCP 3d
Теперь вернемся к моей проблеме с сетью: похоже, на модуле нет правильного сетевого интерфейса для подключения к службе:
/ # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:272 errors:0 dropped:0 overruns:0 frame:0 TX packets:350 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:23830 (23.2 KiB) TX bytes:32140 (31.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Модуль busybox-pod имеет следующий IP-адрес: 172.17.0.2
пока DNS находится в подсети которая начинается с 10. IP днс: 10.96.0.10
,
- Иногда происходит сбой Weavenet на одном рабочем узле, но в общем случае он отображается как "работающий", и я не думаю, что это может быть причиной.
-> Кто-нибудь может увидеть основную ошибку конфигурации в моей сети? Буду рад за подсказки!:)
Основная информация:
Kubernetes / kubectl: v1.9.2
Я использовал kubeadm для установки.
uname -a: Linux controller 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
версия докера:
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.6.2
Git commit: 092cba3
Built: Thu Nov 2 20:40:23 2017
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.6.2
Git commit: 092cba3
Built: Thu Nov 2 20:40:23 2017
OS/Arch: linux/amd64
Experimental: false
Weavenet: 2.2.0
1 ответ
Ни один из сервисных IP-адресов (или IP-адреса кластера, или IP-адреса портала) не отвечает на ping, так что это не очень хороший тест! Хорошим тестом является попытка использования IP-адреса службы с соответствующим клиентом, таким как nslookup для dns, curl для http и т. Д. (И убедитесь, что вы делаете это также на правильном порту).
Как вы видели из nslookup
Служба kube-dns работает нормально.
Существует очень хороший документ о том, как эти виртуальные IP-адреса работают в Kubernetes. Короче говоря: вы не найдете сетевой интерфейс для этой сети, он создается посредством перенаправлений в ядре (настраивается iptables).