更新和修补设备

本页面介绍了更新和修补 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. 使用 U 盘将更新复制到经过网闸隔离的环境。

    将您在第 1 步中下载到 U 盘的下载器脚本和 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. 请求以下角色:

    • Upgrade Appliance Admin:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=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
      
    • System Artifact Management Secrets Admin:

       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
      
    • 系统 Artifact Registry 监控器:

       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
      
    • 升级调试程序:

      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 --config-cert=true
    

开始升级

请按照以下步骤开始升级设备:

gdcloud appliance upgrade 

如需了解详情,请参阅 gdcloud appliance upgrade。

该命令会执行以下步骤:

  1. 在升级机器上运行预检检查。
  2. 运行 OTS 存储空间的预检检查
  3. 将制品推送到 Artifact Registry。
  4. 验证 HPE Chassis Manager 是否运行固件版本 2.10.12 或更高版本。
    • 如果 Chassis Manager 运行的固件版本低于 2.10.12,gdcloud appliance upgrade 会自动将固件更新 ISO 提取到 /root/gdch/full-release-x.x.x-gdch.x/images/gpc-system-firmware/EL8000CM_Updater_BI_2.10.12_App_2.10.12.hybrid.iso,并停止升级,同时显示错误提示。
    • 按照升级 HPE Chassis Manager 固件中的步骤,在 iLO 中装载解压后的 ISO 并更新固件,然后重新运行 gdcloud appliance upgrade 以继续升级。
  5. 升级设备软件和固件,包括:
    1. GDC root-admin 集群。
    2. GDC 服务。
    3. 物理节点和虚拟节点的操作系统 (OS)。
    4. 开关。
    5. 存储

该命令会按顺序执行更新,并等待每个步骤完成。完成上述步骤后,如果升级成功,您会看到如下所示的消息:

The GDC appliance upgrade completed successfully