Kubernetes, выставь все порты

Я хотел бы использовать Kubernetes, поскольку я читаю повсюду: «Kubernetes, без сомнения, является ведущим оркестратором контейнеров, доступным сегодня».

Моя проблема здесь в сети. Мне нужно предоставить внешний IP-адрес каждому из модулей. Мне нужно, чтобы мои модули выглядели так, как если бы они были традиционными виртуальными или аппаратными серверами. Это означает, что мне нужно, чтобы все порты были открыты.

На данный момент я вижу только ограниченный список портов.

Я прав ? Или я что-то упускаю?

Привет, Рауль


person Raoul Debaze    schedule 26.10.2019    source источник
comment
проверьте NGINX Ingress Controller   -  person wineinlib    schedule 27.10.2019
comment
Если виртуальные машины или серверы без операционной системы лучше подходят для вашего приложения, во что бы то ни стало, используйте их. (Есть несколько вопросов docker, которые хотят прослушивать тысячи TCP-портов, и обычный ответ - отключить сетевой уровень Docker. ; в Kubernetes это еще сложнее.)   -  person David Maze    schedule 27.10.2019
comment
Что ж, мне нужна функция контейнеров для мгновенного делета и мгновенного появления. Я не смотрю на абсолютное использование Kubernetes, я просто ищу хороший инструмент оркестровки для охвата и удаления удаленных контейнеров. Я слышал о K8s, поэтому мой вопрос был больше: это хороший инструмент для меня или какой другой инструмент для подготовки контейнеров вы порекомендуете?   -  person Raoul Debaze    schedule 01.11.2019
comment
@RaoulDebaze Не могли бы вы пролить свет на то, почему необходимо открывать все порты? Ожидает ли ваше приложение входящий трафик на случайных портах?   -  person PjoterS    schedule 12.11.2019
comment
Нет, не случайные порты эффективно. Но хоть диапазон 100 непрерывных портов. Я больше думал о том, как я могу использовать K8S и сделать свое приложение максимально возможным, как если бы оно находилось на обычных серверах.   -  person Raoul Debaze    schedule 13.11.2019
comment
@RaoulDebaze, в случае непрерывных портов вы можете сгенерировать служебный yaml с помощью скрипта. Например, что-то вроде этого. Вы достигли своей цели, кстати? Камол прав насчет NodePort.   -  person Nick    schedule 18.11.2019


Ответы (2)


В Kubernetes вам понадобится service для связи с модулями. Чтобы предоставить модули за пределами кластера Kubernetes, вы можете использовать службу k8s NodePort < / a> типа.

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  type: NodePort
  ports:
    - 
      port: 8080
      nodePort: 30000
      name: my-port-8080
    -
      port: 8081
      nodePort: 30001
      name: my-port-8081
    -
      port: 8082
      nodePort: 30002
      name: my-port-8081

Тогда вы сможете добраться до своих капсул в https://<node-ip>:nodePort. Для связи внутри кластера вы можете использовать dns службы: <service-name>.<namespace>.svc:PORT

Обновление:

Взгляните на это руководство: Использование службы для демонстрации вашего приложения < / а>

person Kamol Hasan    schedule 26.10.2019

Вы правы.
Поды - это не настоящие серверы, это скорее приложения-экземпляры с открытыми портами.

Из-за реализации docker- и kubernetes-network-network невозможно построить то, что вы хотите.

Я не знаю вашего варианта использования, но, возможно, вы не ищете кубернетов.

person akop    schedule 16.08.2020