7.8. コンテナー内のアプリケーションにアクセスするためのポート転送の使用
Pod に対してポートフォワーディングを設定することで、クラスター内のサービスをクラスター外部のクライアントに公開できます。
7.8.1. ポート転送について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して、1 つ以上のローカルポートを Pod に転送できます。これにより、指定されたポートまたはランダムのポートでローカルにリッスンでき、Pod の所定ポートへ/からデータを転送できます。
次のようなコマンドを使用すると、1 つまたは複数のローカルポートを Pod に転送できます。
$ oc port-forward <pod> [<local_port>:]<remote_port> [...[<local_port_n>:]<remote_port_n>]
OpenShift CLI (oc) は、ユーザーが指定した各ローカルポートでリッスンし、以下に説明するプロトコルを使用して転送します。
ポートを指定するには、以下の形式を使用できます。
|
| クライアントはポート 5000 でローカルにリッスンし、Pod の 5000 に転送します。 |
|
| クライアントはポート 6000 でローカルにリッスンし、Pod の 5000 に転送します。 |
|
| クライアントは空きのローカルポートを選択し、Pod の 5000 に転送します。 |
Red Hat OpenShift Service on AWS はクライアントからのポート転送要求を処理します。要求を受信すると、Red Hat OpenShift Service on AWS は応答をアップグレードし、クライアントがポート転送ストリームを作成するまで待機します。Red Hat OpenShift Service on AWS は新しいストリームを受信すると、ストリームと Pod のポートの間でデータをコピーします。
アーキテクチャーの観点では、Pod のポートに転送するためのいくつかのオプションがあります。サポートされている Red Hat OpenShift Service on AWS 実装は、ノードホストで nsenter を直接呼び出して Pod のネットワーク namespace に入ってから、socat を呼び出してストリームと Pod のポートの間でデータをコピーします。ただし、カスタムの実装には、nsenter および socat を実行する helper Pod の実行を含めることができ、その場合は、それらのバイナリーをホストにインストールする必要はありません。