8.5. クラスター全体のプロキシーの設定


実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。既存クラスターのプロキシーオブジェクトを変更 するか、または新規クラスターの install-config.yaml ファイルでプロキシー設定を行うことにより、OpenShift Container Platform をプロキシーを使用するように設定できます。

サポート対象プラットフォーム上のクラスターに対してクラスター全体の Egress プロキシーを有効にすると、Red Hat Enterprise Linux CoreOS (RHCOS) は status.noProxy パラメーターに、サポート対象プラットフォーム上に存在する install-config.yaml ファイルの networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] フィールドの値を入力します。

注記

インストール後のタスクとして、networking.clusterNetwork[].cidr の値を変更できますが、networking.machineNetwork[].cidr および networking.serviceNetwork[] の値は変更できません。詳細は、「クラスターネットワーク範囲の設定」を参照してください。

Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、status.noProxy パラメーターには、インスタンスメタデータのエンドポイント (169.254.169.254) も設定されます。

RHCOS によって Proxy オブジェクトの status: セグメントに追加される値の例

apiVersion: config.openshift.io/v1
kind: Proxy
metadata:
  name: cluster
# ...
networking:
  clusterNetwork: 
1

  - cidr: <ip_address_from_cidr>
    hostPrefix: 23
  network type: OVNKubernetes
  machineNetwork: 
2

  - cidr: <ip_address_from_cidr>
  serviceNetwork: 
3

  - 172.30.0.0/16
# ...
status:
  noProxy:
  - localhost
  - .cluster.local
  - .svc
  - 127.0.0.1
  - <api_server_internal_url> 
4

# ...
Copy to Clipboard Toggle word wrap

1
Pod IP アドレスの割り当てに使用する IP アドレスブロックを指定します。デフォルト値は 10.128.0.0/14 で、ホストの接頭辞は /23 です。
2
マシンの IP アドレスブロックを指定します。デフォルト値は 10.0.0.0/16 です。
3
サービスの IP アドレスブロックを指定します。デフォルト値は 172.30.0.0/16 です。
4
oc get infrastructures.config.openshift.io cluster -o jsonpath='{.status.etcdDiscoveryDomain}' コマンドを実行すると、内部 API サーバーの URL を見つけることができます。
重要

使用しているインストールタイプに networking.machineNetwork[].cidr フィールドの設定が含まれていない場合は、ノード間のトラフィックがプロキシーをバイパスできるようにするために、.status.noProxy フィールドにマシンの IP アドレスを手動で含める必要があります。

8.5.1. 前提条件

クラスターがアクセスする必要のあるサイト を確認し、プロキシーをバイパスする必要があるかどうかを判断します。デフォルトで、すべてのクラスターシステムの Egress トラフィック (クラスターをホストするクラウドのクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。システム全体のプロキシーは、ユーザーのワークロードではなく、システムコンポーネントにのみ影響を与えます。必要に応じて、Proxy オブジェクトの spec.noProxy パラメーターにサイトを追加してプロキシーをバイパスします。

8.5.2. クラスター全体のプロキシーの有効化

Proxy オブジェクトは、クラスター全体の Egress プロキシーを管理するために使用されます。プロキシーが設定されていない状態でクラスターをインストールまたはアップグレードすると、Proxy オブジェクトは生成されますが、その spec が nil になります。以下に例を示します。

apiVersion: config.openshift.io/v1
kind: Proxy
metadata:
  name: cluster
spec:
  trustedCA:
    name: ""
status:
Copy to Clipboard Toggle word wrap
注記

cluster という名前の Proxy オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。

クラスター管理者は、cluster Proxy オブジェクトを変更することで、OpenShift Container Platform のプロキシーを設定できます。

警告

クラスターのクラスター全体のプロキシー機能を有効にし、Proxy オブジェクトファイルを保存すると、Machine Config Operator (MCO) によってクラスター内のすべてのノードが再起動され、各ノードがクラスターの外部にある接続にアクセスできるようになります。これらのノードを手動で再起動する必要はありません。

前提条件

  • クラスター管理者のパーミッション。
  • OpenShift Container Platform oc CLI ツールがインストールされている。

手順

  1. HTTPS 接続のプロキシーに必要な追加の CA 証明書が含まれる config map を作成します。

    注記

    プロキシーのアイデンティティー証明書が Red Hat Enterprise Linux CoreOS (RHCOS) トラストバンドルの認証局によって署名されている場合は、この手順をスキップできます。

    1. user-ca-bundle.yaml というファイルを作成し、PEM でエンコードされた証明書の値を指定します。

      apiVersion: v1
      data:
        ca-bundle.crt: | 
      1
      
          <MY_PEM_ENCODED_CERTS> 
      2
      
      kind: ConfigMap
      metadata:
        name: user-ca-bundle 
      3
      
        namespace: openshift-config 
      4
      Copy to Clipboard Toggle word wrap
      1
      このデータキーは ca-bundle.crt という名前にする必要があります。
      2
      プロキシーのアイデンティティー証明書に署名するために使用される 1 つ以上の PEM でエンコードされた X.509 証明書。
      3
      Proxy オブジェクトから参照される config map 名。
      4
      config map は openshift-config namespace に存在する必要があります。
    2. 次のコマンドを入力して、user-ca-bundle.yaml ファイルから config map を作成します。

      $ oc create -f user-ca-bundle.yaml
      Copy to Clipboard Toggle word wrap
  2. oc edit コマンドを使用して Proxy オブジェクトを変更します。

    $ oc edit proxy/cluster
    Copy to Clipboard Toggle word wrap
  3. プロキシーに必要なフィールドを設定します。

    apiVersion: config.openshift.io/v1
    kind: Proxy
    metadata:
      name: cluster
    spec:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 
    1
    
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 
    2
    
      noProxy: example.com 
    3
    
      readinessEndpoints:
      - http://www.google.com 
    4
    
      - https://www.google.com
      trustedCA:
        name: user-ca-bundle 
    5
    Copy to Clipboard Toggle word wrap
    1
    クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは http である必要があります。
    2
    クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。URL スキームは http または https である必要があります。URL スキームをサポートするプロキシーの URL を指定します。たとえば、プロキシーが https を使用するように設定されていても、http しかサポートしていない場合、ほとんどのプロキシーはエラーを報告します。このエラーメッセージはログに反映されず、代わりにネットワーク接続エラーのように見える場合があります。クラスターからの https 接続をリッスンするプロキシーを使用する場合は、プロキシーが使用する CA と証明書を受け入れるようにクラスターを設定する必要がある場合があります。
    3
    プロキシーを除外するための宛先ドメイン名、ドメイン、IP アドレス (またはその他のネットワーク CIDR)、およびポート番号のコンマ区切りリスト。
    注記

    ポート番号は、IPv6 アドレスを設定する場合にのみサポートされます。IPv4 アドレスを設定する場合、ポート番号はサポートされません。

    サブドメインのみと一致するように、ドメインの前に . を付けます。たとえば、.y.comx.y.com に一致しますが、y.com には一致しません。* を使用し、すべての宛先のプロキシーをバイパスします。

    noproxy フィールドにドメインアドレスを含める必要がある場合は、noproxy フィールドにその FQDN または接頭辞が一致するサブドメインを明示的に指定する必要があります。ドメインをカプセル化する IP アドレスまたは CIDR 範囲は使用できません。なぜなら、クラスターは DNS が IP アドレスを返すのを待たずにルート接続を割り当て、実行されているリクエストを明示的にチェックするからです。たとえば、noproxy フィールドに 10.0.0.0/24 などの CIDR ブロック値がある場合、フィールドが https://10.0.0.11 にアクセスしようとすると、アドレスが正常にマッチします。しかし、A レコードのエントリーが 10.0.0.11 である https://exampleserver.externaldomain.com にアクセスしようとすると、失敗します。noproxy フィールドに .externaldomain.com という追加の値が必要です。

    インストール設定の networking.machineNetwork[].cidr フィールドで定義されたネットワークに含まれていないコンピュートノードをスケールアップする場合は、接続の問題を防ぐために、そのノードをこのリストに追加する必要があります。

    httpProxy または httpsProxy フィールドのいずれも設定されていない場合に、このフィールドは無視されます。

    4
    httpProxy および httpsProxy の値をステータスに書き込む前の readiness チェックに使用するクラスター外の 1 つ以上の URL。
    5
    HTTPS 接続のプロキシーに必要な追加の CA 証明書が含まれる、openshift-config namespace の config map の参照。ここで参照する前に config map が存在している必要があります。このフィールドは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。
  4. 変更を適用するためにファイルを保存します。

8.5.3. クラスター全体のプロキシーの削除

cluster プロキシーオブジェクトは削除できません。クラスターからプロキシーを削除するには、プロキシーオブジェクトからすべての spec フィールドを削除します。

前提条件

  • クラスター管理者のパーミッション。
  • OpenShift Container Platform oc CLI ツールがインストールされている。

手順

  1. oc edit コマンドを使用してプロキシーを変更します。

    $ oc edit proxy/cluster
    Copy to Clipboard Toggle word wrap
  2. プロキシーオブジェクトからすべての spec フィールドを削除します。以下に例を示します。

    apiVersion: config.openshift.io/v1
    kind: Proxy
    metadata:
      name: cluster
    spec: {}
    Copy to Clipboard Toggle word wrap
  3. 変更を適用するためにファイルを保存します。

8.5.4. クラスター全体のプロキシー設定の検証

クラスター全体のプロキシー設定がデプロイしたら、期待どおりに動作していることを検証できます。次の手順に従って、ログを確認し、実装を検証してください。

前提条件

  • クラスター管理者パーミッションがある。
  • OpenShift Container Platform oc CLI ツールがインストールされている。

手順

  1. oc コマンドを使用してプロキシー設定のステータスを確認します。

    $ oc get proxy/cluster -o yaml
    Copy to Clipboard Toggle word wrap
  2. 出力内のプロキシーフィールドを検証して、設定と一致していることを確認します。具体的には、spec.httpProxyspec.httpsProxyspec.noProxy、および spec.trustedCA フィールドを確認します。
  3. Proxy オブジェクトのステータスを検査します。

    $ oc get proxy/cluster -o jsonpath='{.status}'
    Copy to Clipboard Toggle word wrap

    出力例

    {
    status:
        httpProxy: http://user:xxx@xxxx:3128
        httpsProxy: http://user:xxx@xxxx:3128
        noProxy: .cluster.local,.svc,10.0.0.0/16,10.128.0.0/14,127.0.0.1,169.254.169.254,172.30.0.0/16,localhost,test.no-proxy.com
    }
    Copy to Clipboard Toggle word wrap

  4. Machine Config Operator (MCO) のログをチェックして、設定の変更が正常に適用されたことを確認します。

    $ oc logs -n openshift-machine-config-operator $(oc get pods -n openshift-machine-config-operator -l k8s-app=machine-config-operator -o name)
    Copy to Clipboard Toggle word wrap
  5. 必要に応じて、プロキシー設定が適用され、ノードが再起動されたことを示すメッセージを確認します。
  6. 外部リクエストを行うコンポーネント (Cluster Version Operator (CVO) など) のログをチェックして、システムコンポーネントがプロキシーを使用していることを確認します。

    $ oc logs -n openshift-cluster-version $(oc get pods -n openshift-cluster-version -l k8s-app=machine-config-operator -o name)
    Copy to Clipboard Toggle word wrap
  7. 外部リクエストがプロキシー経由でルーティングされたことを示すログエントリーを確認します。

関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat