検索

第9章 プロキシー環境でのクラスターの作成

download PDF

ハブクラスターがプロキシーサーバー経由で接続されている場合は、Red Hat OpenShift Container Platform クラスターを作成できます。

クラスターの作成を成功させるには、以下のいずれかの状況が true である必要があります。

  • Red Hat Advanced Cluster Management for Kubernetes には、作成しているマネージドクラスターを使用したプライベートネットワーク接続がありますが、Red Hat Advanced Cluster Management およびマネージドクラスターは、プロキシーを使用してインターネットにアクセスします。
  • マネージドクラスターはインフラストラクチャープロバイダーにありますが、ファイアウォールポートを使用することでマネージドクラスターからハブクラスターへの通信を有効にします。

プロキシーで設定されたクラスターを作成するには、以下の手順を実行します。

  1. 以下の情報を 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 証明書を指定する必要があります。

    以前の値を追加すると、設定はクラスターに適用されます。

  2. クラスターの作成手順を実行してクラスターをプロビジョニングします。「クラスターの作成」を参照してプロバイダーを選択します。

9.1. 既存クラスターでのクラスター全体のプロキシーの有効化

クラスター全体のプロキシー機能を有効にする場合には、マネージドクラスターのコンポーネントを認識して、プロキシーの背後で機能できるようにする必要があります。Operator Pod を環境変数 (HTTP_PROXY, HTTPS_PROXY, NO_PROXY) で更新して、Application Manager などのコンポーネントを有効にします。

これらの環境変数は、Pod が HTTP および HTTPS トラフィックをプロキシーサーバーにルーティングする場所を指定します。Operator Pod はこれらの環境変数で自動的に更新されるので、スタンドアロンサブスクリプションはクラスター全体のプロキシーを有効にした後に機能します。

既存のマネージドクラスターでは、サブスクリプションコントローラーklusterlet アドオン 内で実行されます。環境変数は、Pod の作成時に自動的に追加されません。デプロイメントにパッチを適用し、デプロイメントの各コンテナーに 3 つの環境変数を追加して、環境変数を既存のクラスターに手動で追加する必要があります。

以下の手順を実行して、appmgrklusterlet add-on に環境変数を追加します。

  1. 以下のコマンドを入力して 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 は、コンテナーの名前に置き換えます。

  2. 以下のコマンドを入力して 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 は、コンテナーの名前に置き換えます。

  3. 以下のコマンドを実行して、プロキシーを通過させないものを指定します。

    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 ハブクラスターに アラート転送を設定するには、「送信アラート 」を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.