6.8. コンテナー内のアプリケーションにアクセスするためのポート転送の使用
OpenShift Container Platform は、Pod へのポート転送をサポートします。
6.8.1. ポート転送について
CLI を使用して 1 つ以上のローカルポートを Pod に転送できます。これにより、指定されたポートまたはランダムのポートでローカルにリッスンでき、Pod の所定ポートへ/からデータを転送できます。
ポート転送のサポートは、CLI に組み込まれています。
$ oc port-forward <pod> [<local_port>:]<remote_port> [...[<local_port_n>:]<remote_port_n>]
CLI はユーザーによって指定されたそれぞれのローカルポートでリッスンし、以下で説明されているプロトコルで転送を実行します。
ポートは以下の形式を使用して指定できます。
| クライアントはポート 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 の実行を含めることができ、その場合は、それらのバイナリーをホストにインストールする必要はありません。