5.4. インストール後のプロキシーの設定
Red Hat OpenShift Service on AWS (ROSA) クラスターを既存の Virtual Private Cloud (VPC)にインストールした後に、HTTP または HTTPS プロキシーを設定できます。Red Hat OpenShift Cluster Manager または ROSA CLI (rosa) を使用して、インストール後にプロキシーを設定できます。
5.4.1. OpenShift Cluster Manager を使用したインストール後のプロキシーの設定
Red Hat OpenShift Cluster Manager を使用して、Virtual Private Cloud (VPC) の既存の Red Hat OpenShift Service on AWS クラスターにクラスター全体のプロキシー設定を追加できます。
OpenShift Cluster Manager を使用して、既存のクラスター全体のプロキシー設定を更新することもできます。たとえば、プロキシーのネットワークアドレスを更新するか、プロキシーの認証局のいずれかが期限切れになる場合は追加の信頼バンドルを置き換える必要がある場合があります。
クラスターはプロキシー設定をコントロールプレーンおよびコンピュートノードに適用します。設定の適用時に、各クラスターノードは一時的にスケジュール不可能な状態になり、そのワークロードがドレイン (解放) されます。プロセスの一環として各ノードが再起動されます。
前提条件
- Red Hat OpenShift Service on AWS クラスターがある。
- クラスターが VPC にデプロイされている。
手順
- OpenShift Cluster Manager Hybrid Cloud Console に移動し、クラスターを選択します。
- Networking ページの Virtual Private Cloud (VPC) セクションで、Edit cluster-wide proxy をクリックします。
Edit cluster-wide proxy ページで、プロキシー設定の詳細を指定します。
次のフィールドの少なくとも 1 つに値を入力します。
- 有効な HTTP proxy URL を指定します。
- 有効な HTTPS proxy URL を指定します。
Additional trust bundle フィールドに、PEM でエンコードされた X.509 証明書バンドルを指定します。既存の信頼バンドルファイルを置き換える場合は、Replace file を選択して フィールドを表示します。このバンドルはクラスターノードの信頼済み証明書ストアに追加されます。プロキシーのアイデンティティー証明書が Red Hat Enterprise Linux CoreOS (RHCOS) 信頼バンドルからの認証局によって署名されない限り、追加の信頼バンドルファイルが必要です。
追加のプロキシー設定が必要ではなく、追加の認証局 (CA) を必要とする MITM の透過的なプロキシーネットワークを使用する場合には、MITM CA 証明書を指定する必要があります。
注記HTTP または HTTPS プロキシー URL を指定せずに追加の信頼バンドルファイルをアップロードする場合、バンドルはクラスターに設定されますが、プロキシーで使用するように設定されていません。
- Confirm をクリックします。
検証
- Networking ページの Virtual Private Cloud (VPC) セクションで、クラスターのプロキシー設定が想定どおりであることを確認します。
5.4.2. CLI を使用したインストール後のプロキシーの設定
Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) を使用して、Virtual Private Cloud (VPC) の既存の ROSA クラスターにクラスター全体のプロキシー設定を追加できます。
rosa を使用して、既存のクラスター全体のプロキシー設定を更新することもできます。たとえば、プロキシーのネットワークアドレスを更新するか、プロキシーの認証局のいずれかが期限切れになる場合は追加の信頼バンドルを置き換える必要がある場合があります。
クラスターはプロキシー設定をコントロールプレーンおよびコンピュートノードに適用します。設定の適用時に、各クラスターノードは一時的にスケジュール不可能な状態になり、そのワークロードがドレイン (解放) されます。プロセスの一環として各ノードが再起動されます。
前提条件
-
インストールホストに、最新の ROSA (
rosa) および OpenShift (oc) CLI をインストールして設定している。 - VPC にデプロイされた ROSA クラスターがある。
手順
クラスター設定を編集して、クラスター全体のプロキシーの詳細を追加または更新します。
$ rosa edit cluster \ --cluster $CLUSTER_NAME \ --additional-trust-bundle-file <path_to_ca_bundle_file> \ 1 2 3 --http-proxy http://<username>:<password>@<ip>:<port> \ 4 5 --https-proxy https://<username>:<password>@<ip>:<port> \ 6 7 --no-proxy example.com 8
- 1 4 6
additional-trust-bundle-file、http-proxy引数、およびhttps-proxy引数はすべてオプションです。- 2
http-proxyまたはhttps-proxy引数を指定せずにadditional-trust-bundle-file引数を使用する場合、信頼バンドルはトラストストアに追加され、クラスターシステムの egress トラフィックの検証に使用されます。このシナリオでは、バンドルがプロキシーで使用するように設定されていません。- 3
additional-trust-bundle-file引数は、PEM でエンコードされた X.509 証明書のバンドルを指すファイルパスであり、これはすべて連結されています。additionalTrustBundleパラメーターは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。追加のプロキシー設定が必要ではなく、追加の CA を必要とする MITM の透過的なプロキシーネットワークを使用する場合には、MITM CA 証明書を指定する必要があります。注記プロキシーまたは追加の信頼バンドル設定をクラスターで直接変更しようとしないでください。これらの変更は、ROSA CLI (
rosa) または Red Hat OpenShift Cluster Manager を使用して適用する必要があります。クラスターに直接加えられた変更はすべて自動的に元に戻されます。- 5 7
http-proxy引数およびhttps-proxy引数は、有効な URL を指している必要があります。- 8
- プロキシーを除外する宛先ドメイン名、IP アドレス、またはネットワーク CIDR のコンマ区切りのリスト。
サブドメインのみと一致するように、ドメインの前に
.を付けます。たとえば、.y.comはx.y.comに一致しますが、y.comには一致しません。*を使用し、すべての宛先のプロキシーをバイパスします。インストール設定でnetworking.machineNetwork[].cidrフィールドで定義されるネットワークに含まれていないワーカーをスケールアップする場合、それらをこの一覧に追加し、接続の問題を防ぐ必要があります。httpProxyまたはhttpsProxyフィールドのいずれも設定されていない場合に、このフィールドは無視されます。
検証
マシン設定プールのステータスを一覧表示し、それらが更新されていることを確認します。
$ oc get machineconfigpools
出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-d9a03f612a432095dcde6dcf44597d90 True False False 3 3 3 0 31h worker rendered-worker-f6827a4efe21e155c25c21b43c46f65e True False False 6 6 6 0 31h
クラスターのプロキシー設定を表示し、詳細が想定通りに表示されていることを確認します。
$ oc get proxy cluster -o yaml
出力例
apiVersion: config.openshift.io/v1 kind: Proxy spec: httpProxy: http://proxy.host.domain:<port> httpsProxy: https://proxy.host.domain:<port> <...more...> status: httpProxy: http://proxy.host.domain:<port> httpsProxy: https://proxy.host.domain:<port> <...more...>