クラスタのプロキシ設定の変更

Anthos clusters on AWS のバージョン 1.8 には、クラスタを再作成せずにクラスタのプロキシ設定を変更できる機能が追加されています。

管理サービスのプロキシの変更

Anthos clusters on AWS 管理サービスのプロキシ設定を変更するには、次の手順を行います。

  1. プロキシ構成 JSON ファイルの作成で説明されているように、管理サービスの proxy.json ファイルの内容を更新します。

  2. anthos-gke aws management initanthos-gke aws management apply を再実行して、管理サービスに変更を適用します。

ユーザー クラスタのプロキシの変更

ユーザー クラスタを作成する際、管理サービスのプロキシ設定が使用されます。管理サービスのプロキシ設定を変更せずにユーザー クラスタのプロキシ設定を変更するには、プロキシ情報を含む Kubernetes Secret を作成し、kubectl を使用して変更を適用する必要があります。

Kubernetes Secret を作成する

  1. まず、Secret を記述するために次の内容の YAML ファイルを作成します。Secret は、不透明かつ変更不可として定義する必要があります。この例では、ファイル名に proxy-secret.yaml を使用します。

     apiVersion: v1
     kind: Secret
     metadata:
       name: PROXY_SECRET
     type: Opaque
     immutable: true
     stringData:
       # You can include additional key value pairs as you do with Opaque Secrets
       httpProxy: HTTP_PROXY
       httpsProxy: HTTPS_PROXY
       noProxy: NO_PROXY_LIST
     

    以下のように置き換えます。

    • HTTP_PROXY を、HTTP リクエストをルーティングするプロキシ サーバー アドレスに置き換えます。
    • HTTPS_PROXYを、HTTPS リクエストをルーティングするプロキシ サーバー アドレス(省略可)に置き換えます。
    • NO_PROXY_LIST を、プロキシの使用を回避する必要がある VPN 内の IP、CIDR 範囲、ドメインのリスト(省略可)に置き換えます。
    • PROXY_SECRET を、Secret に選択した名前に置き換えます。
  2. 変更を適用して Secret を作成します。

    env HTTPS_PROXY=http://localhost:8118 \
       kubectl apply -f ./proxy-secret.yaml
    

ユーザー クラスタとノードプールの構成を更新する

次に、AWSCluster と AWSNodePool の構成を更新して、spec.proxySecretNamespec.controlPlane.proxySecretName のシークレット名をそれぞれ参照するようにします。

最後に、次のコマンドを実行してユーザー クラスタを更新します。

   env HTTPS_PROXY=http://localhost:8118 \
     kubectl apply -f CLUSTER_YAML_FILE

CLUSTER_YAML_FILE は、クラスタを定義する yaml ファイルの名前に置き換えます。

ユーザー クラスタのステータスの変更

kubectl apply コマンドを実行して新しいプロキシ設定を適用すると、ユーザー クラスタのステータスが Provisioned から Updating に変更され、完了したら Provisioned に戻ります。

複数のユーザー クラスタのプロキシの設定

複数のユーザー クラスタがあり、クラスタごとに異なるプロキシを構成する場合は、クラスタごとにユーザー クラスタのプロキシの変更の手順に沿って操作してください。プロキシごとに異なる Kubernetes Secret を作成し、対象のユーザー クラスタの Secret の名前を参照するように各ユーザー クラスタ構成を個別に更新する必要があります。

ユーザー クラスタのプロキシのローテーション

すでに個々のプロキシ設定を持つクラスタのプロキシ設定を変更するには、新しいプロキシ設定と異なる Secret 名で新しい Secret を作成して適用します。現行の Secret 名を再利用しても、クラスタのプロキシ設定は変更されません。

トラブルシューティング

Secret の形式が正しくないか、必要なキーがない場合、コマンドは失敗し、変更は適用されません。Secret が正しく検証されたかどうかを確認するには、次のコマンドを使用して AWSClusters と AWSNodePools の Kubernetes イベントログを確認します。

   env HTTPS_PROXY=http://localhost:8118 \
     kubectl get events

Secret の構成にエラーが発生した場合は、次のコマンドを使用して Secret を削除します。

  env HTTPS_PROXY=http://localhost:8118 \
    kubectl delete secret SECRET_NAME
  

SECRET_NAME を Secret の名前に置き換えます。

正しい形式のプロキシ シークレット YAML ファイルを使用してシークレットを再作成し、変更を再適用します。最初の試行で使用したものと同じ Secret 名を使用できます。

詳細情報

プロキシの設定を初めて構成する場合は、プロキシの使用をご覧ください。

専用の AWS VPC を作成するには、マネージド サービスのインストールをご覧ください。