Пользовательский порт Kubernetes NodePort

Есть ли способ, чтобы указать пользовательский NodePort порт в определении YAML kubernetes услуг? Мне нужно иметь возможность явно определить порт в моем файле конфигурации.

Ответ 1

Вы можете установить тип NodePort в своем развертывании Service. Обратите внимание, что для вашего сервера API настроен Node Port Range с параметром --service-node-port-range (по умолчанию 30000-32767). Вы также можете указать порт в этом диапазоне, специально установив атрибут NodePort под объектом Port, или система выберет для вас порт в этом диапазоне.

Итак, пример Service с указанным NodePort будет выглядеть так:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080
      name: http
    - port: 443
      nodePort: 30443
      name: https
  selector:
    name: nginx

Для получения дополнительной информации о NodePort см. этот документ. Для настройки сервера API Node Диапазон портов см. this.

Ответ 2

Вы можете определить статический NodePort, используя nodeport в файле service.yaml

spec:
  type: NodePort
  ports:
    - port: 3000
      nodePort: 31001
      name: http