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 要求轉送至
- HTTPS_PROXY,並可選擇提供 Proxy 伺服器地址,以便透過該地址轉送 HTTPS 要求
- NO_PROXY_LIST,並可選擇性提供 VPN 內不應使用 Proxy 的 IP、CIDR 範圍和網域清單
- 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 建立不同的 Kubernetes Secret,並分別更新每個使用者叢集設定,以參照該使用者叢集的 Secret 名稱。
輪替使用者叢集的 Proxy
如要變更已具備個別 Proxy 設定的叢集 Proxy 設定,請建立並套用具有新 Proxy 設定和不同密鑰名稱的新密鑰。如果重複使用目前的密鑰名稱,叢集的 Proxy 設定不會變更。
疑難排解
如果密鑰格式不正確或缺少必要金鑰,指令就會失敗,且系統不會套用變更。如要檢查 Secret 是否已正確驗證,請使用下列指令查看 AWSClusters 和 AWSNodePools 的 Kubernetes 事件記錄:
env HTTPS_PROXY=http://localhost:8118 \
kubectl get events
如果 Secret 設定有誤,請使用下列指令刪除 Secret:
env HTTPS_PROXY=http://localhost:8118 \ kubectl delete secret SECRET_NAME
將 SECRET_NAME 替換為您的 Secret 名稱。
然後使用格式正確的 Proxy Secret YAML 檔案重新建立 Secret,並重新套用變更。你可以使用與第一次嘗試相同的密鑰名稱。
瞭解詳情
如要首次設定 Proxy 設定,請參閱「使用 Proxy」。
如要建立專屬 AWS 虛擬私有雲,請參閱「安裝管理服務」。