Как открыть приложение http / https в службах Azure Kubernetes - PullRequest
1 голос
/ 23 мая 2019

Я портирую свое докеризованное приложение на kubernetes и сталкиваюсь с проблемой создания балансировщика нагрузки с помощью aks:

The Service "lbalance" is invalid: spec.ports[0].nodePort: Invalid value: 80: provided port is not in the valid range. 
The range of valid ports is 30000-32767

конфигурация довольно проста

apiVersion: v1
kind: Service
metadata:
  name: lbalance
spec:
  selector:
    app: lbalance
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 80
    name: http
  - protocol: TCP
    port: 443
    targetPort: 443
    nodePort: 443
    name: https
  type: LoadBalancer

За этим стоит haproxy с ssl-завершением по отношению к другим службам, доступным в кластере

В моей среде тестирования у меня было свойство контролировать, какой порт открывать (--service-node-port-range), но я не могу найти это свойство ни на странице портала, ни в документации Azure.

Есть ли способ иметь службу на портах по умолчанию или рекомендуемый способ подключения к этим портам конечной точки?

Ответы [ 2 ]

1 голос
/ 23 мая 2019

30000-32767 является диапазоном узлов по умолчанию в kubernetes. вы определили как, nodePort: 443. он не поддерживается и, следовательно, была выдана ошибка.

выполните следующие шаги

  1. заменить NodePort на ClusterIP в качестве типа услуги
  2. развертывание входного контроллера
  3. развернуть бэкэнд по умолчанию
  4. создать секрет из DNS-сертификатов (для https)
  5. развертывание входящего правила (включая секреты) для направления запроса пользователей на бэкэнд-сервис.
1 голос
/ 23 мая 2019

вам нужно удалить объявление nodePort из вашего yaml, и оно будет выделено kubernetes из пула, упомянутого в тексте ошибки (единственный, который вы можете использовать).

apiVersion: v1
kind: Service
metadata:
  name: lbalance
spec:
  selector:
    app: lbalance
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    name: http
  - protocol: TCP
    port: 443
    targetPort: 443
    name: https
  type: LoadBalancer

таким образомваш сервис будет доступен на 80 \ 443, и все будет работать так, как должно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...