第9章 プロキシー環境でのクラスターの作成
ハブクラスターがプロキシーサーバー経由で接続されている場合は、Red Hat OpenShift Container Platform クラスターを作成できます。
クラスターの作成を成功させるには、以下のいずれかの状況が true である必要があります。
- Red Hat Advanced Cluster Management for Kubernetes には、作成しているマネージドクラスターを使用したプライベートネットワーク接続がありますが、Red Hat Advanced Cluster Management およびマネージドクラスターは、プロキシーを使用してインターネットにアクセスします。
- マネージドクラスターはインフラストラクチャープロバイダーにありますが、ファイアウォールポートを使用することでマネージドクラスターからハブクラスターへの通信を有効にします。
プロキシーで設定されたクラスターを作成するには、以下の手順を実行します。
以下の情報を
install-config.yaml
ファイルに追加して、ハブクラスターに cluster-wide-proxy 設定を指定します。apiVersion: v1 kind: Proxy baseDomain: <domain> proxy: httpProxy: http://<username>:<password>@<proxy.example.com>:<port> httpsProxy: https://<username>:<password>@<proxy.example.com>:<port> noProxy: <wildcard-of-domain>,<provisioning-network/CIDR>,<BMC-address-range/CIDR> additionalTrustBundle: | -----BEGIN CERTIFICATE----- <trusted-ca-cert> -----END CERTIFICATE-----
username
は、プロキシーサーバーのユーザー名に置き換えます。password
は、プロキシーサーバーへのアクセス時に使用するパスワードに置き換えます。proxy.example.com
は、プロキシーサーバーのパスに置き換えます。port
は、プロキシーサーバーとの通信ポートに置き換えます。wildcard-of-domain
は、プロキシーをバイパスするドメインのエントリーに置き換えます。provisioning-network/CIDR
は、プロビジョニングネットワークの IP アドレスと割り当てられた IP アドレスの数 (CIDR 表記) に置き換えます。BMC-address-range/CIDR
は、BMC アドレスおよびアドレス数 (CIDR 表記) に置き換えます。trusted-ca-cert
は、openshift-config
namespace の ConfigMap からのuser-ca-bundle
の内容に置き換えます。additionalTrustBundle
フィールドは、プロキシーのアイデンティティー証明書が Red Hat Enterprise Linux Core OS 信頼バンドルからの認証局によって署名されない限り必要になります。追加のプロキシー設定が必要ではなく、追加の CA を必要とする MITM の透過的なプロキシーネットワークを使用する場合には、MITM CA 証明書を指定する必要があります。以前の値を追加すると、設定はクラスターに適用されます。
- クラスターの作成手順を実行してクラスターをプロビジョニングします。「クラスターの作成」を参照してプロバイダーを選択します。
9.1. 既存クラスターでのクラスター全体のプロキシーの有効化
クラスター全体のプロキシー機能を有効にする場合には、マネージドクラスターのコンポーネントを認識して、プロキシーの背後で機能できるようにする必要があります。Operator Pod を環境変数 (HTTP_PROXY
, HTTPS_PROXY
, NO_PROXY
) で更新して、Application Manager などのコンポーネントを有効にします。
これらの環境変数は、Pod が HTTP
および HTTPS
トラフィックをプロキシーサーバーにルーティングする場所を指定します。Operator Pod はこれらの環境変数で自動的に更新されるので、スタンドアロンサブスクリプションはクラスター全体のプロキシーを有効にした後に機能します。
既存のマネージドクラスターでは、サブスクリプションコントローラー
は klusterlet アドオン
内で実行されます。環境変数は、Pod の作成時に自動的に追加されません。デプロイメントにパッチを適用し、デプロイメントの各コンテナーに 3 つの環境変数を追加して、環境変数を既存のクラスターに手動で追加する必要があります。
以下の手順を実行して、appmgr
の klusterlet add-on
に環境変数を追加します。
以下のコマンドを入力して HTTP プロキシーを作成します。
kubectl patch deployment <deployment-name> -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"HTTP_PROXY","value":"'<http-proxy>'"}],"name":"'<container-name>'"}]}}}}'
deployment-name
は、デプロイメント名に置き換えます。http-proxy
は、http 要求に使用するプロキシーサーバーのアドレスに置き換えます。(例:http://192.168.1.1:3128
)。container-name
は、コンテナーの名前に置き換えます。以下のコマンドを入力して HTTP プロキシーを作成します。
kubectl patch deployment <deployment-name> -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"HTTPS_PROXY","value":"'<https-proxy>'"}],"name":"'<container-name>'"}]}}}}'
deployment-name
は、デプロイメント名に置き換えます。https-proxy
は https 要求に使用するプロキシーサーバーのアドレスに置き換えます。(例:http://192.168.1.0:3128
)。container-name
は、コンテナーの名前に置き換えます。以下のコマンドを実行して、プロキシーを通過させないものを指定します。
kubectl patch deployment <deployment-name> -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"NO_PROXY","value":"'<no-proxy>'"}],"name":"'<container-name>'"}]}}}}'
deployment-name
は、デプロイメント名に置き換えます。no-proxy
は、トラフィックがプロキシー経由でルーティングされない IP、ホスト名、およびドメインのコンマ区切りリストに置き換えます。(例:.cluster.local,.svc,10.128.0.0/14, example.com
)。container-name
は、コンテナーの名前に置き換えます。
ヒント: 複数のコンテナーでは、各コンテナーで、以下の例のようなファイルを作成して実行できます。
DEPLOYMENT_NAME="klusterlet-addon-appmgr" CONTAINER_NAME="subscription-controller" HTTP_PROXY="http://192.168.1.1:3128" HTTPS_PROXY="http://192.168.1.0:3128" NO_PROXY=".cluster.local,.svc,10.128.0.0/14, example.com" kubectl patch deployment $DEPLOYMENT_NAME -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"HTTP_PROXY","value":"'$HTTP_PROXY'"}],"name":"'$CONTAINER_NAME'"}]}}}}' kubectl patch deployment $DEPLOYMENT_NAME -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"HTTPS_PROXY","value":"'$HTTPS_PROXY'"}],"name":"'$CONTAINER_NAME'"}]}}}}' kubectl patch deployment $DEPLOYMENT_NAME -p '{"spec":{"template":{"spec":{"containers":[{"env":[{"name":"NO_PROXY","value":"'$NO_PROXY'"}],"name":"'$CONTAINER_NAME'"}]}}}}'
注記: マネージドクラスターで
は、プロキシーを通過できない mTLS 接続を確立してハブクラスターで 登録
エージェントおよびワークエージェントapiserver
と通信するため、プロキシー設定をサポートしません。
重要: グローバルプロキシー設定は、アラート転送には影響しません。クラスター全体のプロキシーを使用して Red Hat Advanced Cluster Management ハブクラスターに アラート転送を設定するには、「送信アラート 」を参照してください。