如果貴機構使用 HTTP Proxy 處理網際網路流量,您必須相應設定 GKE 連結的叢集。本文說明如何進行這項設定。
事前準備
GKE 附加叢集需要連線至各種 Google Cloud 服務。請確認 Proxy 伺服器允許流量傳輸至下列網域:
.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 連接的叢集設定 Proxy 支援
如要為 GKE 連接的叢集設定 Proxy 支援,請按照下列步驟操作:
建立 Proxy 設定檔,其中包含
httpProxy
、noProxy
和httpsProxy
鍵的值:{ "httpProxy": HTTP_PROXY_AUTHENTICATION_URL, "httpsProxy": HTTPS_PROXY_AUTH_URL, "noProxy": NO_PROXY_ADDRESSES }
更改下列內容:
HTTP_PROXY_AUTHENTICATION_URL
:Proxy 伺服器網址,包含主機名稱/IP 位址,以及選用的通訊埠、使用者名稱和密碼。例如:http://user:password@192.0.2.0:80
或198.51.100.255
。- :加密 HTTPS 流量的 Proxy 網址,包含主機名稱/IP 位址,以及選用的連接埠、使用者名稱和密碼。
HTTPS_PROXY_AUTH_URL
NO_PROXY_ADDRESSES
:以逗號分隔的清單,列出可略過 Proxy 的資源網址、CIDR 區塊和 DNS 名稱。這會指示 GKE 連結的叢集,避免對指定資源使用 Proxy。請注意下列事項:- 值可以是個別 IP 位址、CIDR 範圍、網域名稱,甚至是星號字元 (*)。在
noProxy
欄位中使用單一星號 (*
),可讓 GKE 連結的叢集略過所有流量的 Proxy。 - 以半形句點開頭的網域 (例如
.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 範圍、網域名稱,甚至是星號字元 (*)。在
建立 Proxy 設定檔時,請遵守下列規範:
httpProxy
和httpsProxy
欄位不接受https://
前置字串。即使實際的 Proxy 伺服器位址以https://
開頭,也請使用http://
。 舉例來說,https://proxy.example.com:3128
可表示為http://proxy.example.com:3128
。- 請務必為所有三個欄位提供值:
httpProxy
、httpsProxy
和noProxy
。 - 考慮在
noProxy
清單中附加其他網域、IP 位址或 CIDR。建議您加入 VPC IP 範圍。
執行下列指令,建立含有 Proxy 設定的 Kubernetes Secret:
kubectl create secret generic SECRET_NAME \ --from-file=PROXY_CONFIGURATION_FILE
更改下列內容:
SECRET_NAME
:Kubernetes Secret 的名稱PROXY_CONFIGURATION_FILE
:您在步驟 1 建立的 Proxy 設定路徑。
將 Kubernetes Secret 標示為immutable,方法是將
immutable
欄位設為true
:kubectl edit secret SECRET_NAME
請將
SECRET_NAME
替換為 Kubernetes Secret 的名稱。設定新叢集或現有叢集來使用 Proxy:
新增叢集
如要註冊新叢集並套用 Proxy 設定,請使用
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
:包含 Proxy 設定的 Kubernetes Secret 名稱SECRET_NAMESPACE
:儲存 Secret 的 Kubernetes 命名空間
如要瞭解註冊叢集時可使用的所有引數,請參閱
gcloud container attached clusters register
指令。現有的叢集
如要使用新的 Proxy 設定更新先前註冊的叢集,請使用
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
:包含 Proxy 設定的 Kubernetes Secret 名稱SECRET_NAMESPACE
:儲存 Secret 的 Kubernetes 命名空間
如果 Proxy 伺服器詳細資料已變更,或初始叢集註冊程序忽略了 Proxy 需求,就必須執行這個步驟。
如要瞭解更新叢集時可使用的所有引數,請參閱
gcloud container attached clusters update
指令。
完成這些步驟後,GKE 連結的叢集會使用設定檔中指定的 Proxy 伺服器,處理對外網際網路流量。