更新及修補裝置

本頁面說明如何更新及修補 Google Distributed Cloud (GDC) 無網路連線裝置。

升級前的準備工作

升級前,請先確認是否符合本節所列需求條件。

事前準備

請參閱筆電必備條件,確認用於更新和修補程式升級的筆電符合實體規格和其他需求。

您必須先完成下列有關 gdcloud 指令列介面 (CLI) 工具的操作:

  1. 下載 gdcloud CLI 工具。
  2. 安裝 gdcloud CLI 工具。
  3. 視需要升級 gdcloud CLI 工具。
  4. 確認 docker-credential-gdcloud 是否存在。

將構件轉移至升級機器

您必須具備 Cloud Storage 值區的存取權。

請按照下列步驟,將構件轉移到用於更新和修補程式升級的筆電:

  1. 根據所選修補程式版本下載套件

    VERSION=<x.x.x-gdch.yyy>
    RELEASE_SUFFIX="_te"
    DOWNLOADER=gdch-downloader-prod${RELEASE_SUFFIX}-$VERSION.sh
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/$DOWNLOADER" .
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/${DOWNLOADER}.sig" .
    
    PUBLIC_KEY=$(cat <<-PUBEND
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn46iVSyFXsvuKLZ4dVOr2AqlXDnR
    5cKztkpraexHDxn/ozq03EvrdkRmZkSACFfcaEFyitpraidgAx8sPjvzXQ==
    -----END PUBLIC KEY-----
    PUBEND
    )
    echo "${PUBLIC_KEY}" > "key.pub"
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    
    gcloud storage cp "gs://${GCS_BUCKET:-private-cloud-release}/$VERSION/$DOWNLOADER*" .
       openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-unzip
    

    這個指令會將更新套件和下載器指令碼擷取至目前目錄,例如 /home/download

  2. 執行 tree -L 3 /home/download

    輸出內容範例:

    /home/download
    ├── gdch
    │   └── x.x.x-gdch.x
    │       ├── bootstrapper
    │       │   ├── bootstrapper.iso
    │       │   └── bootstrapper.iso.sig
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz.sig
    │       ├── prod_te_gdch.tar.gz
    │       └── prod_te_gdch.tar.gz.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.1.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.sig
       └── key.pub
    
  3. 使用 USB 隨身碟將更新檔複製到與網際網路隔離的環境。

    將下載器指令碼和您在步驟 1 中下載到 USB 隨身碟的 gdch 目錄,一併複製到無網路連線環境中的升級機器。

  4. 在升級機器中,使用下載檔案包時的相同資訊,驗證內容並解壓縮檔案。舉例來說,下列程式碼會將套件複製到 /root 目錄。

    解壓縮套件:

    VERSION=x.x.x-gdch.x
    PRODUCT=prod_te
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-download
    

    套件會解壓縮到 /root/gdch/full-release-x.x.x-gdch.x 路徑。

  5. 確認版本與您在 VERSION 中設定的版本相符:

    /root/gdch/full-release-x.x.x-gdch.x/gdcloud version
    

    輸出內容範例:

    gdcloud version: 1.14.4-gdch.0
    

驗證

如要透過設定的識別資訊提供者進行驗證,並為使用者身分和叢集要求 kubeconfig 檔案,請參閱「驗證」。

  1. 登入並產生 kubeconfig 檔案

  2. 將 kubeconfig 檔案設為環境變數:

      export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
      export MANAGEMENT_KUBECONFIG=MANAGEMENT_API_KUBECONFIG
    
  3. 要求下列角色

    • 升級設備管理員:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --role=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      
    • 系統構件管理管理員:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • 系統構件管理密鑰管理員:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-secrets-admin-initial-user --role=system-artifact-management-secrets-admin --user=keycloak-oidc-initial-user@example.com -n anthos-creds
      
    • DNS 尾碼檢視者:

       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding dnssuffix-viewer-initial-user --role=dnssuffix-viewer --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • 系統構件登錄檔監控:

       kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
      
    • 升級 Debugger:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-debugger-initial-user --clusterrole=upgrade-debugger --user=keycloak-oidc-initial-user@example.com
      
    • 系統 Artifact Registry 偵錯工具:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-debugger-initial-user --clusterrole=sar-debugger --user=keycloak-oidc-initial-user@example.com
      
  4. 設定 Docker:

    gdcloud auth configure-docker
    

開始升級

請按照下列步驟升級設備:

gdcloud appliance upgrade 

詳情請參閱gdcloud appliance upgrade

這項指令會執行下列步驟:

  1. 在升級機器上執行預檢。
  2. 執行 OTS 儲存空間的預檢
  3. 將構件推送至構件登錄檔。
  4. 升級設備軟體和韌體,包括:
    1. GDC 根管理員叢集。
    2. GDC 服務。
    3. 實體和虛擬節點的作業系統。
    4. 切換。
    5. 儲存空間

這項指令會依序執行更新,並等待每個步驟完成。完成上述步驟後,如果升級成功,您會看到類似以下的訊息:

The GDC appliance upgrade completed successfully