プロキシサーバーを使用するための Schematics エージェントの設定

多くの環境では、パブリック・インターネットへの直接接続は許可されていませんが、接続はセキュア・プロキシー・ゲートウェイによって経路指定される必要があります。 Schematics エージェント構成ポリシーでは、インターネットへの直接アクセスが許可されていないプロキシー・サーバーの使用が許可されています。 HTTP、または HTTPS プロキシを使用することができます。

プロキシー構成は、クラスター内の各ホストで同じでなければなりません。 そのため、プロキシを設定または変更するときは、デプロイメント、ConfigMap,、NetworkPolicy YAML 仕様ファイルを更新する必要があります。 次に、デプロイメントを再始動してプロキシー・サーバー構成を適用します。

開始前に

プロキシー・サーバー・アクセスを構成する前に、以下の要件が満たされていることを確認してください。 この例では、ポート 3128 で squid プロキシーを使用します。

  • HTTP または HTTPS Google にアクセスでき、クラスタからアクセス可能なプロキシサーバー。
  • プロキシー・サーバーの IP アドレスおよびポート (例: http://53.25.191.193:3128 )
  • curl コマンド・ライン・ツールは、クラスター・ポッドで使用できます。

プロキシー・サーバーの構成

  1. Kubernetes クラスター・コンソールから。 Kubernetes ダッシュボードをクリック

  2. 名前空間選択ドロップダウン・ボックスで schematics-runtime に切り替えます。

  3. Config and Storage セクションで、 「構成マップ」 をクリックして、 schematics-runtime 名前空間のマップを表示します。

    • schematics-runtime-job-config configmap リソースをクリックし、鉛筆アイコンを選択して YAML ファイルを編集し、 HTTPS/HTTP プロキシー・ステートメントを追加します。

    • ファイルの下部セクションにある data プロパティーの下に HTTPS/HTTP プロキシー・エントリーを追加します。

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • 「更新」をクリックして構成マップを保存し、新規プロキシー・エントリーがファイル・リストに表示されていることを確認します。

    • schematics-runtime-ansible-job-config configmap リソースについて、この手順を繰り返します。

  4. Cluster セクションで、 「ネットワーク・ポリシー」 をクリックして schematics-runtime 名前空間のポリシーを表示します。

    • whitelist-runtime-egress-gen-ports NetworkPolicy ファイルを編集して、 HTTPS/HTTP プロキシーで使用されるポートを追加します。
    • HTTPS/HTTP プロキシー・ポートをポート・プロパティーに追加します。
      - ports:
        - protocol: TCP
          port: 3128
      
  5. schematics-runtime デプロイメントを再始動し、すべてのポッドが稼働していることを確認します。

    • Workloads セクションで、 「デプロイメント」 をクリックして、schematics-runtime 名前空間の現在のデプロイメントを表示します。
    • runtime-job リソースを選択し、ポッドを再始動します。
    • runtime-ansible-job リソースを選択し、ポッドを再始動します。

プロキシー・サーバー・アクセスの検証

クラスター・ポッドがプロキシー・サーバーを介してインターネットにアクセスできることを確認します。

  • schematics-runtime ポッドにログインし、以下の curl コマンドを実行して、プロキシー環境変数がコンテナーで正しく設定されていることを確認します。

  • Workloads > Pods の下で、最初の job-runtime とその中の Exec を選択します。

    curl --head https://www.google.com
    

プロキシーが HTTPS で機能している場合、 curl コマンドは 200 OK HTTP response を返します。

curl コマンドが接続に失敗した場合は、プロキシーがクラスターからアクセス可能であること、およびターゲット Web サイトへのアクセスを経路指定できることを確認してください。 プロキシーがアクセス可能であることを検証するには、プロキシー・オプションを指定して以下の curl コマンドを使用します。

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

プロキシー・パラメーターを使用して Web サイトにアクセスできない場合は、クラスターのネットワーク出口ルールが正しく設定されていること、およびプロキシーへのネットワーク・アクセスがあることを確認してください。

プロキシー・パラメーターを使用して Web サイトにアクセスできる場合は、 env コマンドを実行して、構成マップが正しく更新されたこと、および HTTPS/HTTP プロキシー環境変数が設定されていることを確認します。

環境変数 HTTP_PROXY および HTTPS_PROXY が出力にリストされます。 リストされていない場合は、configmap 定義を再確認してください。