組織でインターネット トラフィックに HTTP プロキシを使用している場合は、それに応じて GKE 接続クラスタを構成する必要があります。このドキュメントでは、この構成方法について説明します。
始める前に
GKE 接続クラスタには、さまざまな Google Cloud サービスへの接続が必要です。プロキシ サーバーで、次のドメインへのトラフィックを許可していることを確認してください。
- .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 は、クラスタが存在する Google Cloud リージョンに置き換えます。us-west1 または別のサポートされているリージョンを指定します。
GKE 接続クラスタのプロキシ サポートを構成する
GKE 接続クラスタのプロキシ サポートを構成するには、次の操作を行います。
- httpProxy、- noProxy、- httpsProxyのキーの値を含むプロキシ構成ファイルを作成します。- { "httpProxy": HTTP_PROXY_AUTHENTICATION_URL, "httpsProxy": HTTPS_PROXY_AUTH_URL, "noProxy": NO_PROXY_ADDRESSES }- 次のように置き換えます。 - HTTP_PROXY_AUTHENTICATION_URL: プロキシ サーバーの URL。ホスト名 / IP アドレスと、必要に応じてポート、ユーザー名、パスワードで構成されます。たとえば、- http://user:password@192.0.2.0:80や- 198.51.100.255などです。
- HTTPS_PROXY_AUTH_URL: 暗号化された HTTPS トラフィックのプロキシ URL。ホスト名 / IP アドレスと、必要に応じてポート、ユーザー名、パスワードで構成されます。
- NO_PROXY_ADDRESSES: プロキシをバイパスできるリソースの URL、CIDR ブロック、DNS 名のカンマ区切りのリスト。これにより、GKE 接続クラスタが指定されたリソースにプロキシを使用しないよう指示します。ただし、次の点にご注意ください。- 値は、個々の IP アドレス、CIDR 範囲、ドメイン名、またはアスタリスク文字(*)です。noProxyフィールドで単一のアスタリスク(*)を使用すると、すべてのトラフィックのプロキシをスキップするように GKE 接続クラスタに指示します。
- ドットで始まるドメイン(.google.comなど)は、そのすべてのサブドメインをターゲットにします。たとえば、.google.comにはmail.google.comやdrive.google.comなどのアドレスが含まれますが、google.comは除外されます。
- 適切なロギングのために、kubernetes.default.svc.cluster.localとkubernetes.default.svcのドメインが含まれていることを確認してください。たとえば、198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svcのようになります。
 
- 値は、個々の IP アドレス、CIDR 範囲、ドメイン名、またはアスタリスク文字(*)です。
 - プロキシ構成ファイルを作成するときは、次のガイドラインに従ってください。 - httpProxyフィールドと- httpsProxyフィールドは、- https://接頭辞を受け入れません。実際のプロキシ サーバー アドレスが- https://で始まる場合でも、- http://を使用します。たとえば、- https://proxy.example.com:3128は- http://proxy.example.com:3128として表されます。
- httpProxy、- httpsProxy、- noProxyの 3 つのフィールドすべてに値を指定する必要があります。
- noProxyリストにドメイン、IP アドレス、CIDR を追加することを検討してください。VPC の IP 範囲を含めることをおすすめします。
 
- 次のコマンドを実行して、プロキシ構成を含む Kubernetes Secret を作成します。 - kubectl create secret generic SECRET_NAME \ --from-file=PROXY_CONFIGURATION_FILE- 次のように置き換えます。 - SECRET_NAME: Kubernetes Secret の名前
- PROXY_CONFIGURATION_FILE: ステップ 1 で作成したプロキシ構成のパス。
 
- immutableフィールドを- trueに設定して、Kubernetes Secret を変更不可としてマークします。- kubectl edit secret SECRET_NAME- SECRET_NAMEは、Kubernetes Secret の名前に置き換えます。
- プロキシを使用するように新規または既存のクラスタを構成します。 - 新しいクラスタ- 新しいクラスタを登録してプロキシ構成を適用するには、 - gcloud container attached clusters registerコマンドを使用します。省略可能な引数- --proxy-secret-nameと- --proxy-secret-namespaceを指定してください。- gcloud container attached clusters register CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACE- 次のように置き換えます。 - CLUSTER_NAME: クラスタの名前。
- SECRET_NAME: プロキシ構成を含む Kubernetes Secret の名前
- SECRET_NAMESPACE: Secret が保存されている Kubernetes Namespace
 - クラスタを登録する際に使用できるすべての引数については、 - gcloud container attached clusters registerコマンドをご覧ください。- 既存のクラスタ- 以前に登録したクラスタを新しいプロキシ構成で更新するには、 - gcloud container attached clusters updateコマンドを使用します。省略可能な引数- --proxy-secret-nameと- --proxy-secret-namespaceを指定してください。- gcloud container attached clusters update CLUSTER_NAME \ --proxy-secret-name=SECRET_NAME \ --proxy-secret-namespace=SECRET_NAMESPACE- 次のように置き換えます。 - CLUSTER_NAME: クラスタの名前。
- SECRET_NAME: プロキシ構成を含む Kubernetes Secret の名前
- SECRET_NAMESPACE: Secret が保存されている Kubernetes Namespace
 - このステップは、プロキシ サーバーの詳細が変更された場合、または最初のクラスタ登録でプロキシの要件が見落とされた場合に必要です。 - クラスタを更新する際に使用できるすべての引数については、 - gcloud container attached clusters updateコマンドをご覧ください。
これらのステップを実行すると、GKE 接続クラスタは、構成ファイルで指定されたプロキシ サーバーを使用して、アウトバウンド インターネット トラフィックを処理します。