Как настроить входной контроллер чистого металла Kubernetes для прослушивания порта 80?

У меня есть настройка kubernetes с 1 ведущим и 1 ведомым, размещенная на DigitalOcean Droplets. Для выставления моих услуг я хочу использовать Ingresses.

Так как у меня железная установка, я должен настроить свой собственный входной контроллер.Как мне заставить его слушать порт 443 или 80 вместо диапазона 30000-32767?

Для настройки входного контроллера я использовал это руководство: https://kubernetes.github.io/ingress-nginx/deploy/

Мой сервис контроллера выглядит так:

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

И теперь, очевидно, поскольку диапазон NodePort составляет 30000-32767, этот контроллер не отображается на порт 80 или 443:

➜ kubectl get services --all-namespaces
NAMESPACE       NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   ingress-nginx          NodePort    10.103.166.230   <none>        80:30907/TCP,443:30653/TCP   21m

2 ответа

Я согласен с @Matthew L Daniel, если вы не планируете использовать внешний балансировщик нагрузки, лучшим вариантом будет совместное использование сетевого интерфейса хоста с ingress-nginx Под включением hostNetwork опция в спецификации стручков:

template:
  spec:
    hostNetwork: true

Таким образом, контроллер NGINX Ingress может связывать порты 80 и 443 непосредственно с узлами Kubernetes без привязки специальных прокси-портов (30000-32767) к вложенным службам. Найти больше информации здесь.

Вы не можете привязать входящий сервис к порту 80. Вы можете запустить HAProxy на хосте и перенаправить порт 80,443, запросив номер порта входящего сервиса.

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