如果貴機構使用 HTTP Proxy 處理網際網路流量,您必須相應設定 GKE 連結的叢集。本文說明如何進行這項設定。
事前準備
GKE 附加叢集需要連線至各種 Google Cloud 服務。請確認 Proxy 伺服器允許流量傳輸至下列網域:
.gcr.iocloudresourcemanager.googleapis.comcontainer.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.comoauth2.googleapis.comsecuretoken.googleapis.comstorage.googleapis.comsts.googleapis.comwww.googleapis.comservicecontrol.googleapis.comlogging.googleapis.commonitoring.googleapis.comopsconfigmonitoring.googleapis.comGCP_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欄位設為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 伺服器,處理對外網際網路流量。