HTTP プロキシを使用する
このドキュメントでは、HTTP/HTTPS プロキシ経由で GKE on Azure からトラフィックを転送する方法について説明します。クラスタ作成時にプロキシ構成を指定します。
概要
GKE on Azure は、次の理由で、プロキシを介してアウトバウンド インターネット トラフィックを転送できます。
- Connect を介して Google Cloud にクラスタを登録するため
- Connect エージェントを実行するため
- Container Registry からイメージをダウンロードするため
制限事項
httpProxy
フィールドとhttpsProxy
フィールドでは、https://
で始まる URL がサポートされません。http://
を使用する必要があります。ポート 443 へのリクエストでは HTTPS を使用します。httpProxy
、httpsProxy
、noProxy
の値を設定する必要があります。- クラスタのプロキシ構成(リソース グループ ID とシークレット ID)は不変です。これらの値を更新するには、新しいクラスタとノードプールを作成する必要があります。
noProxy
フィールドにドメイン、IP、CIDR を追加することが必要な場合があります。クラスタのコントロール プレーン サブネット CIDR を追加することをおすすめします(Pod アドレス CIDR と Service アドレス CIDR はデフォルトで追加されます)。
前提条件
このセクションでは、プロキシを使用する前に適用する必要がある前提条件について説明します。
Azure Key Vault の構成
GKE on Azure は、Azure Key Vault にプロキシ構成情報を保存します。GKE on Azure でプロキシを構成するには、Key Vault でシークレットを作成する権限が必要です。Key Vault は、クラスタの VNet からアクセスできる必要があります。
プロキシの許可リスト
GKE on Azure で Google Cloud サービスに接続するには、プロキシ サーバーで特定の Google ドメインと Microsoft ドメインへのトラフィックを許可する必要があります。
.azure.com
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com
GCP_LOCATION
は、GKE Enterprise クラスタが存在する Google Cloud リージョンに置き換えます。us-west1
または別のサポート対象リージョンを指定します。
サブネットのネットワーク セキュリティ グループの要件
ネットワーク セキュリティ グループ(NSG)を使用してサブネットへのトラフィックを管理している場合は、NSG ルールで次の宛先への送信 TCP トラフィックを許可する必要があります。
- AzureCloud: TCP、ポート 80 と 443
NSG でサービスタグを使用する方法については、Azure サービスタグをご覧ください。
プロキシ構成ファイルを作成する
プロキシ構成は、Azure Key Vault シークレットに JSON 文字列として保存されます。この構成は、ファイルとして az
コマンドライン ツールに渡すことができます。このセクションでは、そのファイルを作成する方法について説明します。
次の表で、このファイルの内容について説明します。
フィールド | 説明 | 例 | 必須 |
---|---|---|---|
httpProxy |
プロキシ サーバーの URL。この値には、ホスト名 / IP アドレスと、必要に応じてポート、ユーザー名、パスワードを含める必要があります。 | "http://user:password@10.184.37.42:80" "10.184.37.42" |
はい |
httpsProxy |
暗号化された HTTPS トラフィックのプロキシ URL。httpsProxy の値が空の場合、httpProxy URL が使用されます。 | "http://10.101.16.31:80"
|
はい |
noProxy |
プロキシから除外する URL のカンマ区切りのリスト。それぞれの値は、IP アドレス、CIDR 範囲、ドメイン名、またはアスタリスク文字(*)です。先頭のドット(例: 「.google.com」)で指定されているドメインは、サブドメインが必要であることを示しています。単一のアスタリスク(*)は、すべてのプロキシ構成を無視します。 | "1.2.3.4,10.0.0.0/16,example.com,.site.com" |
はい |
構成ファイルを作成するには、
httpProxy
キー、noProxy
キー、およびオプションのhttpsProxy
キーの値を含む JSON ファイルを作成します。{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
次のように置き換えます。
AUTHENTICATION_URL
: プロキシのユーザー名とパスワードを含むエンコードされた URLNO_PROXY_ADDRESSES
: CIDR ブロックと URL のカンマ区切りのリスト(例:10.0.0.0/16,http://example.com
)
次のセクションで使用するためにファイルを保存します。
az
コマンドライン ツールを使用して、この JSON データを含むシークレットを、Azure Key Vault にシークレットとして作成します。az keyvault secret set --name SECRET_NAME \ --vault-name KEY_VAULT_NAME \ --file PROXY_CONFIGURATION_FILE
次のように置き換えます。
SECRET_NAME
: 新しいシークレットの名前KEY_VAULT_NAME
: Key Vault の名前PROXY_CONFIGURATION_FILE
: プロキシ構成ファイルのパス。出力にはシークレットの名前とコンテンツが含まれます。これで、クラスタを作成するときにこのシークレットを参照できるようになりました。
プロキシを使用するクラスタを作成する
アウトバウンド接続に HTTP プロキシを使用するように GKE on Azure を構成するには、次の手順を行います。
クラスタとノードプールを作成するの手順に沿って、--proxy-resource-group-id
フラグと --proxy-secret-id
フラグを渡します。
gcloud container azure clusters create CLUSTER_NAME \
--proxy-resource-group-id=PROXY_RESOURCE_GROUP_ID \
--proxy-secret-id=PROXY_SECRET_ID
...
次のように置き換えます。
CLUSTER_NAME
: クラスタの名前PROXY_RESOURCE_GROUP_ID
: クラスタをホストするリソース グループPROXY_SECRET_ID
: プロキシ構成を含むシークレットの ID(例:https://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION
)
次のステップ
- クラスタを作成する方法に関する追加情報をご覧ください。