Stay organized with collections
Save and categorize content based on your preferences.
If your organization uses an HTTP proxy for internet traffic, you need to
configure GKE attached clusters accordingly. This document describes how to perform
this configuration.
Before you begin
GKE attached clusters requires connectivity to various Google Cloud services. Make
sure your proxy server allows traffic to the following domains:
.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
Replace GCP_LOCATION with the Google Cloud region in
which your cluster resides. Specify us-west1 or another
supported region.
Configure proxy support for GKE attached clusters
To configure proxy support for GKE attached clusters, follow these
steps:
Create a proxy configuration file which contains values for httpProxy,
noProxy, and httpsProxy keys:
HTTP_PROXY_AUTHENTICATION_URL: the proxy server
URL, which consists of a hostname/IP address, and optionally a port,
username, and password. For example: http://user:password@192.0.2.0:80 or
just 198.51.100.255.
HTTPS_PROXY_AUTH_URL: the proxy URL for encrypted
HTTPS traffic, which consists of a hostname/IP address, and optionally a
port, username, and password.
NO_PROXY_ADDRESSES: a comma-separated list of
URLs, CIDR blocks, and DNS names of resources that can bypass the proxy.
This directs GKE attached clusters to avoid using the proxy for the specified
resources. Keep in mind the following:
Values can be individual IP addresses, CIDR ranges, domain names, or
even the asterix character (*). Using a single asterix (*) in the
noProxy field tells GKE attached clusters to skip the proxy for all traffic.
A domain leading with a dot, such as .google.com, targets all its
subdomains. For example, .google.com includes addresses such as
mail.google.com and drive.google.com, but excludes google.com.
Ensure that you include kubernetes.default.svc.cluster.local and
kubernetes.default.svc domains for proper logging. Here's an example:
198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.
When creating the proxy configuration file, adhere to the following
guidelines:
The httpProxy and httpsProxy fields don't accept https:// prefixes.
Use http://, even if the real proxy server address begins with https://.
For example, represent https://proxy.example.com:3128 as
http://proxy.example.com:3128.
It's compulsory to provide values for all three fields: httpProxy,
httpsProxy, and noProxy.
Consider appending additional domains, IP addresses, or CIDRs to the
noProxy list. We recommend that you include the VPC IP range.
Create a Kubernetes Secret, which contains the proxy configuration, by
running the following command:
PROXY_CONFIGURATION_FILE: the path to the proxy
configuration you created in step 1.
Mark the Kubernetes Secret as
immutable
by setting its immutable field to true:
kubectleditsecretSECRET_NAME
Replace SECRET_NAME with the name of the Kubernetes
Secret.
Configure a new or existing cluster to use the proxy:
New cluster
To register a new cluster and apply the proxy configuration, use the
gcloud container attached clusters register command. Make sure to provide the optional arguments
--proxy-secret-name and --proxy-secret-namespace:
To update a previously registered cluster with a new proxy configuration,
use the
gcloud container attached clusters update command. Make sure to provide the optional arguments --proxy-secret-name
and --proxy-secret-namespace:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[],[],null,["# Proxy support for EKS attached clusters\n\nIf your organization uses an HTTP proxy for internet traffic, you need to\nconfigure GKE attached clusters accordingly. This document describes how to perform\nthis configuration.\n\nBefore you begin\n----------------\n\nGKE attached clusters requires connectivity to various Google Cloud services. Make\nsure your proxy server allows traffic to the following domains:\n\n- `.gcr.io`\n- `cloudresourcemanager.googleapis.com`\n- `container.googleapis.com`\n- `gkeconnect.googleapis.com`\n- `gkehub.googleapis.com`\n- `oauth2.googleapis.com`\n- `securetoken.googleapis.com`\n- `storage.googleapis.com`\n- `sts.googleapis.com`\n- `www.googleapis.com`\n- `servicecontrol.googleapis.com`\n- `logging.googleapis.com`\n- `monitoring.googleapis.com`\n- `opsconfigmonitoring.googleapis.com`\n- \u003cvar translate=\"no\"\u003eGCP_LOCATION\u003c/var\u003e`-gkemulticloud.googleapis.com`\n\nReplace \u003cvar translate=\"no\"\u003eGCP_LOCATION\u003c/var\u003e with the Google Cloud region in\nwhich your cluster resides. Specify `us-west1` or another\n[supported region](/kubernetes-engine/multi-cloud/docs/attached/eks/reference/supported-regions).\n\nConfigure proxy support for GKE attached clusters\n-------------------------------------------------\n\nTo configure proxy support for GKE attached clusters, follow these\nsteps:\n\n1. Create a proxy configuration file which contains values for `httpProxy`,\n `noProxy`, and `httpsProxy` keys:\n\n {\n \"httpProxy\": \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nv\"\u003eHTTP_PROXY_AUTHENTICATION_URL\u003c/span\u003e\u003c/var\u003e,\n \"httpsProxy\": \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nv\"\u003eHTTPS_PROXY_AUTH_URL\u003c/span\u003e\u003c/var\u003e,\n \"noProxy\": \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-nv\"\u003eNO_PROXY_ADDRESSES\u003c/span\u003e\u003c/var\u003e\n }\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eHTTP_PROXY_AUTHENTICATION_URL\u003c/var\u003e: the proxy server URL, which consists of a hostname/IP address, and optionally a port, username, and password. For example: `http://user:password@192.0.2.0:80` or just `198.51.100.255`.\n - \u003cvar translate=\"no\"\u003eHTTPS_PROXY_AUTH_URL\u003c/var\u003e: the proxy URL for encrypted HTTPS traffic, which consists of a hostname/IP address, and optionally a port, username, and password.\n - \u003cvar translate=\"no\"\u003eNO_PROXY_ADDRESSES\u003c/var\u003e: a comma-separated list of URLs, CIDR blocks, and DNS names of resources that can bypass the proxy. This directs GKE attached clusters to avoid using the proxy for the specified resources. Keep in mind the following:\n - Values can be individual IP addresses, CIDR ranges, domain names, or even the asterix character (\\*). Using a single asterix (`*`) in the `noProxy` field tells GKE attached clusters to skip the proxy for all traffic.\n - A domain leading with a dot, such as `.google.com`, targets all its subdomains. For example, `.google.com` includes addresses such as `mail.google.com` and `drive.google.com`, but excludes `google.com`.\n - Ensure that you include `kubernetes.default.svc.cluster.local` and `kubernetes.default.svc` domains for proper logging. Here's an example: `198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc`.\n\n When creating the proxy configuration file, adhere to the following\n guidelines:\n - The `httpProxy` and `httpsProxy` fields don't accept `https://` prefixes. Use `http://`, even if the real proxy server address begins with `https://`. For example, represent `https://proxy.example.com:3128` as `http://proxy.example.com:3128`.\n - It's compulsory to provide values for all three fields: `httpProxy`, `httpsProxy`, and `noProxy`.\n - Consider appending additional domains, IP addresses, or CIDRs to the `noProxy` list. We recommend that you include the VPC IP range.\n2. Create a Kubernetes Secret, which contains the proxy configuration, by\n running the following command:\n\n kubectl create secret generic \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e \\\n --from-file=\u003cvar translate=\"no\"\u003ePROXY_CONFIGURATION_FILE\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e: the name of the Kubernetes Secret\n - \u003cvar translate=\"no\"\u003ePROXY_CONFIGURATION_FILE\u003c/var\u003e: the path to the proxy configuration you created in step 1.\n3. Mark the Kubernetes Secret as\n [immutable](https://kubernetes.io/docs/concepts/configuration/secret/#secret-immutable)\n by setting its `immutable` field to `true`:\n\n kubectl edit secret \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e with the name of the Kubernetes\n Secret.\n4. Configure a new or existing cluster to use the proxy:\n\n ### New cluster\n\n To register a new cluster and apply the proxy configuration, use the\n [`gcloud container attached clusters register` command](/sdk/gcloud/reference/container/attached/clusters/register). Make sure to provide the optional arguments\n `--proxy-secret-name` and `--proxy-secret-namespace`: \n\n gcloud container attached clusters register \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --proxy-secret-name=\u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e \\\n --proxy-secret-namespace=\u003cvar translate=\"no\"\u003eSECRET_NAMESPACE\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the cluster\n - \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e: the name of the Kubernetes Secret containing the proxy configuration\n - \u003cvar translate=\"no\"\u003eSECRET_NAMESPACE\u003c/var\u003e: the Kubernetes namespace where the Secret is stored\n\n For information about all the arguments you can use when registering a\n cluster, see the\n [`gcloud container attached clusters register` command](/sdk/gcloud/reference/container/attached/clusters/register).\n\n ### Existing cluster\n\n To update a previously registered cluster with a new proxy configuration,\n use the\n [`gcloud container attached clusters update` command](/sdk/gcloud/reference/container/attached/clusters/update). Make sure to provide the optional arguments `--proxy-secret-name`\n and `--proxy-secret-namespace`: \n\n gcloud container attached clusters update \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --proxy-secret-name=\u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e \\\n --proxy-secret-namespace=\u003cvar translate=\"no\"\u003eSECRET_NAMESPACE\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the cluster\n - \u003cvar translate=\"no\"\u003eSECRET_NAME\u003c/var\u003e: the name of the Kubernetes Secret containing the proxy configuration\n - \u003cvar translate=\"no\"\u003eSECRET_NAMESPACE\u003c/var\u003e: the Kubernetes namespace where the Secret is stored\n\n This step is required if your proxy server details have changed, or if an\n initial cluster registration overlooked proxy requirements.\n\n For information about all the arguments you can use when updating a\n cluster, see the\n [`gcloud container attached clusters update` command](/sdk/gcloud/reference/container/attached/clusters/update).\n\nAfter performing these steps, GKE attached clusters processes outbound internet\ntraffic using the proxy server specified in the configuration file."]]