Избегайте резервирования ненужного NodePort в службе

У меня есть эта служба NodePort, которая предоставляет два порта:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: my-service
  ports:
  - name: nginx-public
    port: 443
    targetPort: nginx-public
  - name: metrics
    port: 9200
    targetPort: metrics

Порт nginx-public должен быть доступен на узле, потому что я использую его с aws-alb-ingress-controller.

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

Есть ли способ указать Kubernetes зарезервировать только один порт узла для этой службы?

Я попытался указать nodePort: null в спецификации порта следующим образом:

  ports:
  - name: nginx-public
    port: 443
    targetPort: nginx-public
  - name: metrics
    port: 9200
    targetPort: metrics
    nodePort: null

но, согласно describe service, похоже, что это имеет тот же эффект, что и полное исключение nodePort, а случайный порт по-прежнему зарезервирован для metrics.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
2
0
132
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете определить две службы: одна выбирает nginx-public, а другая выбирает метрики. использовать два разные ярлыки на стручках соответственно.

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