Сетевое подключение 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).

Другие вопросы по тегам