Я пытаюсь подключиться к контейнеру Docker в Google Container Engine (GKE) с моей локальной машины через Интернет по протоколу TCP. До сих пор я использовал сервисы Kubernetes, которые предоставляют внешний IP-адрес, поэтому локальная машина может подключаться к контейнеру на GKE с помощью службы. Когда мы создаем службу, мы можем указать только один порт и не можем указать диапазон портов. См. Ниже описание my-ros-service.yaml. В этом случае мы можем получить доступ к контейнеру через порт 11311 за пределами GCE.Как выставить динамические порты, используя сервис Kubernetes в Google Container Engine?
Однако некоторые приложения, которые работают на моем контейнере, выставляют динамические порты для подключения к другим приложениям. Поэтому я не могу определить номер порта, который использует приложение, и не может создать службы Kubernetes, прежде чем запускать приложение.
До сих пор мне удалось подключиться к контейнеру, создав множество сервисов, которые имеют разные порты при запуске приложения. Но это нереальный путь решения проблемы.
Мой вопрос заключается в том, что:
Как подключиться к приложению, которое обнажает динамические порты на Докер контейнера из внешней БКА с помощью службы Kubernetes?
Если возможно, можем ли мы создать службу, которая предоставляет динамический порт для входящего соединения перед запуском приложения, которое выполняется на контейнере?
Любой совет или информация, которую вы могли бы предоставить, были бы весьма признательны.
Заранее спасибо.
мои-РОС-service.yaml
kind: Service
apiVersion: v1beta1
id: my-ros-service
port: 11311
selector:
name: my-ros
containerPort: 11311
createExternalLoadBalancer: true
Спасибо, Эрик. Ваш ответ дал мне новую идею о том, что на данный момент служба Кубернете не имеет возможности выставлять несколько портов. Надеюсь, в будущем служба примет несколько портов. Да, теперь я буду следить за этим вопросом. –