更新和修补设备

本页面介绍了更新和修补 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 步中下载到 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. 请求以下角色

    • 升级 Appliance Admin:

      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
      
    • 系统制品管理 Secret 管理员:

       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
      
    • 系统制品注册调试器:

      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