AWS 上的 GKE 1.8 版新增了修改叢集 Proxy 設定的功能,不必重新建立叢集。
變更管理服務的 Proxy
如要修改 GKE on AWS 管理服務的 Proxy 設定,請按照下列步驟操作:
如「建立 Proxy 設定 JSON 檔案」一文所述,更新管理服務的 proxy.json 檔案內容。
重新執行
anthos-gke aws management init和anthos-gke aws management apply,將變更套用至管理服務。
變更使用者叢集的 Proxy
建立使用者叢集時,系統會使用管理服務的 Proxy 設定。
如要變更使用者叢集的 Proxy 設定,但不要變更管理服務的設定,請建立包含 Proxy 資訊的 Kubernetes Secret,然後使用 kubectl 套用變更。
建立 Kubernetes Secret
首先,請建立含有下列內容的 YAML 檔案,說明 Secret。 Secret 必須定義為不透明且不可變動。本範例使用檔案名稱
proxy-secret.yaml。apiVersion: v1 kind: Secret metadata: name: PROXY_SECRET type: Opaque immutable: true stringData: # You can include additional key value pairs as you do with Opaque Secrets httpProxy: HTTP_PROXY httpsProxy: HTTPS_PROXY noProxy: NO_PROXY_LIST
取代:
- HTTP_PROXY,並提供 Proxy 伺服器位址,將 HTTP 要求透過 Proxy 伺服器轉送。
- HTTPS_PROXY,並可選擇性提供 Proxy 伺服器位址,以便透過該位址轉送 HTTPS 要求
- NO_PROXY_LIST,並可選擇性提供 VPN 內 IP、CIDR 範圍和網域的清單,這些項目不應使用 Proxy
- PROXY_SECRET 改成您為 Secret 選擇的名稱
套用變更來建立 Secret:
env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f ./proxy-secret.yaml
更新使用者叢集和節點集區設定
接著,更新 AWSCluster 和 AWSNodePool 設定,分別參照 spec.proxySecretName 和 spec.controlPlane.proxySecretName 下的 Secret 名稱。
最後,發出下列指令來更新使用者叢集。
env HTTPS_PROXY=http://localhost:8118 \
kubectl apply -f CLUSTER_YAML_FILE
將 CLUSTER_YAML_FILE 替換為定義叢集的 YAML 檔案名稱。
使用者叢集狀態變更
執行 kubectl apply 指令套用新的 Proxy 設定後,使用者叢集狀態會從 Provisioned 變更為 Updating,完成後則會返回 Provisioned。
為多個使用者叢集設定 Proxy
如果您有多個使用者叢集,且想為每個叢集設定不同的 Proxy,請按照變更使用者叢集的 Proxy 操作說明,為每個叢集設定 Proxy。您必須為每個 Proxy 建立不同的 Kubernetes Secret,並分別更新每個使用者叢集設定,以參照該使用者叢集的 Secret 名稱。
輪替使用者叢集的 Proxy
如要變更已具備個別 Proxy 設定的叢集 Proxy 設定,請建立並套用具有新 Proxy 設定和不同密鑰名稱的新密鑰。如果重複使用目前的密鑰名稱,叢集的 Proxy 設定不會變更。
疑難排解
如果密鑰格式不正確或缺少必要金鑰,指令就會失敗,且系統不會套用變更。如要檢查 Secret 是否已正確驗證,請使用下列指令查看 AWSClusters 和 AWSNodePools 的 Kubernetes 事件記錄:
env HTTPS_PROXY=http://localhost:8118 \
kubectl get events
如果密鑰設定有誤,請使用下列指令刪除密鑰:
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete secret SECRET_NAME
將 SECRET_NAME 替換為您的 Secret 名稱。
然後使用格式正確的 Proxy Secret YAML 檔案重新建立 Secret,並重新套用變更。你可以使用與第一次嘗試相同的密鑰名稱。
瞭解詳情
如要首次設定 Proxy,請參閱「使用 Proxy」。
如要建立專屬 AWS 虛擬私有雲,請參閱「安裝管理服務」。