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 に転送します。 |
OpenShift Container Platform は、クライアントからのポート転送要求を処理します。要求を受信すると、OpenShift Container Platform は応答をアップグレードし、クライアントがポート転送ストリームを作成するまで待機します。OpenShift Container Platform が新規ストリームを受信したら、ストリームと Pod のポート間でデータをコピーします。
アーキテクチャーの観点では、Pod のポートに転送するためのいくつかのオプションがあります。サポートされている OpenShift Container Platform 実装はノードホストで直接 nsenter を直接呼び出して、Pod ネットワークの namespace に入ってから、socat を呼び出してストリームと Pod のポート間でデータをコピーします。ただし、カスタムの実装には、nsenter および socat を実行する helper Pod の実行を含めることができ、その場合は、それらのバイナリーをホストにインストールする必要はありません。