Гептио-контур наружный ip на голый металл

Я настроил кластер kubernetes с помощью kubespray, и теперь я пытаюсь следовать этому руководству

root@node1 ~ # kubectl get -n heptio-contour service contour -o wide
NAME      TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE       SELECTOR
contour   LoadBalancer   10.233.55.94   <pending>     80:32414/TCP,443:30149/TCP   42m       app=contour

Похоже на то EXTERNAL-IP в ожидании, потому что я нахожусь на голой металлической машине (не AWS/GKE и т. д.)

Что мне нужно сделать, чтобы получить там внешний ip?

1 ответ

Решение

Kubernetes предлагает три способа предоставления услуги:

1) L4 LoadBalancer: доступно только для облачных провайдеров, таких как GCE и AWS

2) Предоставить сервис через NodePort: директива NodePort выделяет порт на каждом рабочем узле, который передает трафик соответствующему модулю.

3) L7 Ingress: Ingress - это выделенный балансировщик нагрузки (например, nginx, HAProxy, traefik, vulcand), который перенаправляет входящий трафик HTTP/HTTPS на соответствующие конечные точки.

Kubernetes не предлагает реализацию сетевых балансировщиков нагрузки (сервисов типа LoadBalancer) для голых металлических кластеров.

Если вы не используете кластер Kubernetes на поддерживаемой платформе IaaS (GCP, AWS, Azure...), LoadBalancers останется в состоянии "ожидания" независимо от времени их создания.

Причиной является отсутствие поддержки IP-маршрутизации между внешним миром и Kubernetes; нет реализации по умолчанию для передачи зон DNS, используемых Ingress для выделения связи внутри кластера.

Существуют внешние проекты, чтобы предоставить "голое железо" даже в режиме кластеров федерации, чтобы быть частью автономного или гибридного решения.

Это зависит от масштаба и зрелости проектов, которые у вас есть, поэтому начинать следует с выбора правильного балансировщика нагрузки или VIP- провайдера:

https://github.com/google/metallb

https://docs.traefik.io/

https://github.com/kubernetes/contrib/tree/master/keepalived-vip

http://vulcand.github.io/

и не рекомендуется:

http://www.linuxvirtualserver.org/software/ipvs.html

Обратите внимание, что в федеративных кластерах (более одного чистого кластера Kubernetes) требуется для экспорта IP-адреса каждой физической машины центральному провайдеру API, и, вероятно, на него не распространяются ссылки, которые я вам предоставил.

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