Попробуйте запустить weave-network-plugin в kubernetes
Прежде всего, я хотел бы сказать, что я новичок в теме kubernetes, и у меня проблема в том, что я не могу связаться с модулем (через службу), когда я предоставляю службе фиксированный IP, поэтому я хотел бы подвести итог вещи, которые, я думаю, я понял, и, может быть, кто-то здесь может исправить меня или признать мой путь решения моей проблемы.
Я развертываю свой кластер с помощью kubespray ansible-script на baremetal (2 узла с CentOS 7) и настраиваю скрипт и полученный кластер следующим образом:
- Режим прокси: ipvs
- сеть обслуживания: 10.0.0.0/24
- Под-сеть: 10.0.1.0/24
- сетевой плагин: weave-net
- dns_mode: dnsmasq_kubedns
и после успешного развертывания я могу развернуть модули, сервисы, секреты и т. д. в кластере, поэтому мне кажется, что он работает нормально, но когда я сейчас определю внешний IP, например, так:
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- port: 80
selector:
name: nginx
externalIPs:
- "192.168.1.42"
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: gluster-pod1
image: gcr.io/google_containers/nginx-slim:0.8
ports:
- name: web
containerPort: 80
Я могу связаться с модулем по его внутреннему IP-адресу, по IP-адресу конечной точки и по IP-адресу главного устройства, но не по IP-адресу, который я определяю для этой службы. Когда я пытаюсь это сделать, я получаю сообщение об ошибке: "нет маршрута к хосту "странно, что для меня это когда я устанавливаю IP для сервиса в качестве того же IP, что и мастер kubernetes, т.е.
...
spec:
ports:
- port: 80
selector:
name: nginx
externalIPs:
- "192.168.1.1"
Я могу добраться до стручка.
Теперь, после прочтения большого количества документации и рекомендаций, проблема решается, когда я настраиваю свой собственный балансировщик нагрузки для управления внешними IP-адресами, потому что если я не определил фиксированный IP-адрес, служба ожидает статус "ожидающий" для внешнего IP-адреса.,
Но, к сожалению, после прочтения документации я не уверен, действительно ли архитектура работает таким образом, я имею в виду pod <-> service <-> балансировщик нагрузки (<-> DHCP)
так что я могу добраться до стручка через сервис.
Когда я начал, я хотел бы закрыть этот пост, я не уверен, что это правильное направление для решения моей проблемы. Вот почему я был бы очень благодарен, если кто-то может подтвердить меня или поправить меня:-) С наилучшими пожеланиями, Дэн