TCP プロトコルを使用して、ローカル マシンからインターネット経由で Google Container Engine (GKE) 上の Docker コンテナに接続しようとしています。これまで、外部 IP アドレスを提供する Kubernetes サービスを使用してきたので、ローカル マシンはサービスを使用して GKE 上のコンテナに接続できます。サービスを作成するときは、ポートを 1 つしか指定できず、ポート範囲を指定できません。以下の my-ros-service.yaml を参照してください。この場合、GCE の外部から 11311 ポートでコンテナーにアクセスできます。
ただし、コンテナーで実行される一部のアプリケーションは、動的ポートを公開して他のアプリケーションに接続します。したがって、アプリケーションが使用するポート番号を特定できず、アプリケーションを実行する前に Kubernetes サービスを作成できません。
これまでのところ、アプリケーションの実行中に異なるポートを持つ多くのサービスを作成することで、コンテナーに接続することができました。しかし、これは問題を解決する現実的な方法ではありません。
私の質問は次のとおりです。
Kubernetes サービスを使用して、GCE の外部から Docker コンテナーの動的ポートを公開するアプリケーションに接続するにはどうすればよいですか?
可能であれば、コンテナ上で実行されるアプリケーションを実行する前に、着信接続用の動的ポートを公開するサービスを作成できますか?
アドバイスや情報をいただければ幸いです。
前もって感謝します。
my-ros-service.yaml
kind: Service
apiVersion: v1beta1
id: my-ros-service
port: 11311
selector:
name: my-ros
containerPort: 11311
createExternalLoadBalancer: true