更新無狀態工作負載

本頁說明如何更新在 Google Distributed Cloud (GDC) 氣隙 Kubernetes 叢集中執行的現有無狀態工作負載。隨著應用程式根據資源用量和設定最佳化作業演進,您必須更新 Kubernetes 叢集中的基礎 Pod 規格,以反映這些工作負載變更。

本頁面適用於應用程式運算子群組的開發人員,負責更新所屬機構的應用程式工作負載。詳情請參閱 GDC air-gapped 說明文件適用對象

事前準備

如要對 Kubernetes 叢集執行指令,請確認您具備下列資源:

  1. 找出 Kubernetes 叢集名稱,或詢問平台管理員叢集名稱。

  2. 如果沒有 Kubernetes 叢集的 kubeconfig 檔案,請登入並產生該檔案。

  3. 請使用 Kubernetes 叢集的 kubeconfig 路徑,替換這些操作說明中的 KUBERNETES_CLUSTER_KUBECONFIG

如要取得更新無狀態工作負載的必要權限,請要求機構的 IAM 管理員在專案命名空間中,授予您命名空間管理員角色 (namespace-admin)。

更新部署作業

如要更新 Deployment 物件,請執行:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f DEPLOYMENT_FILE

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行部署作業的叢集 kubeconfig 檔案。

  • NAMESPACE:專案命名空間。

  • DEPLOYMENT_FILE:要更新的 Deployment 資訊清單檔案名稱。

kubectl apply 指令會將資訊清單檔案套用至資源。如果指定的資源不存在,則這個指令會建立該資源。

您也可以透過其他方式更新部署作業中的資源。

更新容器映像檔

如要變更 Deployment 物件的圖片,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    set image deployment DEPLOYMENT_NAME \
    IMAGE=IMAGE:TAG

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行部署作業的叢集 kubeconfig 檔案。

  • NAMESPACE:專案命名空間。

  • DEPLOYMENT_NAME:包含圖片的 Deployment 物件名稱。

  • IMAGE:容器映像檔的名稱。

  • TAG:要更新的容器映像檔標記。

更新 Deployment 的映像檔有助於變更選取器欄位或資源,例如要求或限制。

舉例來說,如要更新名為 nginxDeployment 物件,使其使用版本 1.9.1,請執行下列指令:

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    set image deployment nginx nginx=nginx:1.9.1

復原更新內容

如要復原更新 (例如部署作業變得不穩定時),請使用 kubectl CLI。系統會保留 Deployment 物件的發布記錄,因此您可以隨時復原。

如要將正在進行或已完成的更新復原到先前版本,請執行下列指令:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行部署作業的叢集 kubeconfig 檔案。

  • NAMESPACE:專案命名空間。

  • DEPLOYMENT_NAME:要復原的 Deployment 物件名稱。

如要復原到特定版本,請執行:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    rollout undo deployment DEPLOYMENT_NAME \
    --to-revision=REVISION_NUMBER

更改下列內容:

  • KUBERNETES_CLUSTER_KUBECONFIG:執行部署作業的叢集 kubeconfig 檔案。

  • NAMESPACE:專案命名空間。

  • DEPLOYMENT_NAME:要復原的 Deployment 物件名稱。

  • REVISION_NUMBER:定義要還原的修訂版本 (整數),例如 3