本頁面說明如何輪替下列服務帳戶的金鑰:
如要輪替服務帳戶金鑰,請按照下列步驟操作:
建立目錄,用來儲存目前密鑰的備份:
mkdir backup
請記下相關服務帳戶的下列資訊:
元件存取權
叢集 密鑰 命名空間 管理員 admin-cluster-creds kube-system 管理員 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt 管理員 private-registry-creds kube-system 使用者 private-registry-creds kube-system - 如果您未使用私有登錄檔,
private-registry-creds
Secret 會保留元件存取服務帳戶的金鑰。 - 如果您使用私有登錄檔,
private-registry-creds
Secret 會保留私有登錄檔的憑證,而非元件存取服務帳戶金鑰。
Connect-register
叢集 密鑰 命名空間 管理員 admin-cluster-creds kube-system 管理員 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt 記錄檔監控
叢集 密鑰 命名空間 管理員 admin-cluster-creds kube-system 管理員 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt 使用者 google-cloud-credentials kube-system 使用者 stackdriver-service-account-key knative-serving 稽核記錄
叢集 密鑰 命名空間 管理員 admin-cluster-creds kube-system 管理員 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt 管理員 kube-apiserver CLUSTER_NAME Stackdriver
叢集 密鑰 命名空間 管理員 admin-cluster-creds kube-system 管理員 user-cluster-creds CLUSTER_NAME-gke-onprem-mgmt 使用者 google-cloud-credentials kube-system 使用者 stackdriver-service-account-key knative-serving - 如果您未使用私有登錄檔,
使用下列指令備份每個密鑰:
kubectl get secret SECRET --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/SECRET-NAMESPACE.json
更改下列內容:
NAMESPACE
:密鑰所在的命名空間。例如:kube-system
。KUBECONFIG
:管理員或使用者叢集的 kubeconfig 檔案路徑。SECRET
:密鑰名稱。例如:admin-cluster-creds
。
舉例來說,請為稽核記錄服務帳戶執行下列指令:
kubectl get secret admin-cluster-creds --namespace kube-system \ --kubeconfig KUBECONFIG -o json > backup/admin-cluster-creds-kube-system.json kubectl get secret user-cluster-creds --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/user-cluster-creds-NAMESPACE.json kubectl get secret kube-apiserver --namespace NAMESPACE \ --kubeconfig KUBECONFIG -o json > backup/kube-apiserver-NAMESPACE.json
如要建立新的服務帳戶金鑰檔案,請執行下列指令:
gcloud iam service-accounts keys create NEW_KEY_FILE --iam-account IAM_ACCOUNT
更改下列內容:
NEW_KEY_FILE
:新服務帳戶金鑰檔案的名稱IAM_ACCOUNT
:服務帳戶的電子郵件地址
在管理叢集設定檔中,找出
componentAccessServiceAccountKeyPath
欄位、gkeConnect
區段、stackdriver
區段和cloudAuditLogging
區段。在這些位置,請替換服務帳戶金鑰檔案的路徑。在使用者叢集設定檔中,找出
componentAccessServiceAccountKeyPath
欄位、gkeConnect
區段、stackdriver
區段和cloudAudigLogging
區段。在這些位置,將服務帳戶金鑰檔案的路徑替換為實際路徑。執行下列指令,儲存所做的變更:
您可以一次輪替一個元件的金鑰,也可以將元件設為
sakeys
,一次輪替所有金鑰。gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --admin-cluster gkectl update credentials COMPONENT \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
取代下列項目:
COMPONENT
:下列其中一項:componentaccess
register
cloudauditlogging
stackdriver
sakeys
(輪替所有元件金鑰)
ADMIN_CLUSTER_KUBECONFIG
:管理員叢集 kubeconfig 檔案的路徑。ADMIN_CLUSTER_CONFIG
:管理員叢集設定檔的路徑。USER_CLUSTER_CONFIG
:使用者叢集設定檔的路徑。
重新建立節點
部分服務帳戶金鑰輪替作業可能需要較長時間,因為必須重新建立節點:
服務帳戶 | 需要重新建立節點 |
---|---|
元件存取權 | 如果使用 Artifact Registry:是 如果使用私人登錄檔:否 |
稽核記錄 | 管理員叢集:可以,但僅限控制層節點 使用 kubeception 的使用者叢集:不可以 使用 Controlplane V2 的使用者叢集:可以,但僅限控制層節點 |
Logging-monitoring | 否 |
連線及註冊 | 否 |
如果金鑰輪替需要重新建立節點,系統會在滾動更新程序中替換節點,也就是逐一重新建立節點。
金鑰輪替期間可能發生的停機時間,與叢集升級的停機時間類似。詳情請參閱「升級過程中的停機情形」。
還原備份
如要還原先前建立的密鑰備份,請執行下列指令:
kubectl apply -f backup/
輪替服務帳戶金鑰時,進階叢集之間的差異
gkectl update credentials
指令僅部分支援進階叢集。下表列出支援和不支援的指令變化:
指令 | 說明 | 支援 |
---|---|---|
gkectl update credentials certificate-authorities rotate |
輪替憑證授權單位。 | 支援 |
gkectl update credentials certificate-authorities status |
(預覽) 查看憑證授權單位輪替狀態。 | 支援 |
gkectl update credentials certificate-authorities update-kubeconfig |
下載含有最新用戶端憑證的 kubeconfig 檔案。 | 支援 |
gkectl update credentials cloudauditlogging |
更新 Cloud 稽核記錄憑證。 | 不支援 |
gkectl update credentials componentaccess |
更新使用 Google Distributed Cloud for VMware 建立的叢集元件存取服務帳戶金鑰憑證。 | 支援 |
gkectl update credentials f5bigip |
更新 F5 BIG-IP 負載平衡器憑證。 | 不需要 |
gkectl update credentials ksa-signing-key rotate |
輪替 Kubernetes 服務帳戶 (KSA) 權杖簽署金鑰。 | 不支援 |
gkectl update credentials ksa-signing-key status |
查看進行中的 KSA 權杖簽署金鑰輪替狀態。 | 不支援 |
gkectl update credentials |
更新叢集憑證。 | 支援 |
gkectl update credentials privateregistry |
更新叢集的私有登錄檔憑證。 | 支援 |
gkectl update credentials register |
更新註冊服務帳戶金鑰憑證。 | 支援 |
gkectl update credentials sakeys |
更新叢集的服務帳戶金鑰憑證。 | 支援 |
gkectl update credentials stackdriver |
(預先發布版) 更新 Google Cloud Observability 憑證。 | 支援 |
gkectl update credentials vsphere |
更新叢集的 vSphere 憑證。 | 支援 |
如需進階叢集支援或不支援的 Google Distributed Cloud for VMware 功能和特性完整清單,請參閱「執行進階叢集時的差異」。