Actualizar y aplicar parche a un dispositivo

En esta página se describen los pasos para actualizar y parchear tu dispositivo aislado de Google Distributed Cloud (GDC).

Prepararse para la actualización

Asegúrate de que cumples los requisitos que se indican en esta sección antes de actualizar.

Antes de empezar

Consulta los requisitos de los portátiles para asegurarte de que el portátil que vas a usar para las actualizaciones y los parches cumple las especificaciones físicas y otros requisitos.

Primero debes completar las siguientes acciones en relación con las herramientas de la interfaz de línea de comandos (CLI) gdcloud:

  1. Descarga las herramientas de la CLI de gdcloud.
  2. Instala las herramientas de la CLI de gdcloud.
  3. Actualiza las herramientas de la CLI de gdcloud según sea necesario.
  4. Asegúrate de que docker-credential-gdcloud esté presente.

Transfiere los artefactos a la máquina de mejora

Debes tener acceso al segmento de Cloud Storage.

Sigue estos pasos para transferir los artefactos al portátil que usas para las actualizaciones y los parches:

  1. Descarga el paquete en función de la versión del parche seleccionada:

    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
    

    Este comando obtiene el paquete de actualización y la secuencia de comandos del descargador en el directorio actual, por ejemplo, /home/download.

  2. Ejecuta tree -L 3 /home/download.

    Ejemplo:

    /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. Copia la actualización en el entorno aislado con tu unidad USB.

    Copia tanto la secuencia de comandos de descarga como el directorio gdch que has descargado en la unidad USB en el paso 1 en el equipo de actualización del entorno aislado.

  4. En la máquina de actualización, comprueba el contenido y extrae los archivos con la misma información que usaste para descargar el paquete. Por ejemplo, el siguiente código copia el paquete en el directorio /root.

    Descomprime el paquete:

    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
    

    El paquete se descomprime en la ruta /root/gdch/full-release-x.x.x-gdch.x.

  5. Confirma que la versión coincide con la que has definido en VERSION:

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

    Ejemplo de salida:

    gdcloud version: 1.14.4-gdch.0
    

Autenticar

Para autenticarte con el proveedor de identidades que hayas configurado y solicitar un archivo kubeconfig para tu identidad de usuario y tu clúster, consulta Autenticación.

  1. Inicia sesión y genera los archivos kubeconfig.

  2. Define los archivos kubeconfig como variables de entorno:

      export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
      export MANAGEMENT_KUBECONFIG=MANAGEMENT_API_KUBECONFIG
    
  3. Solicita los siguientes roles:

    • Actualizar el administrador del dispositivo:

      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
      
    • Administrador de gestión de artefactos del sistema:

       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
      
    • Administrador de secretos de gestión de artefactos del sistema:

       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
      
    • Visor de sufijos DNS:

       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding dnssuffix-viewer-initial-user --role=dnssuffix-viewer --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • Monitor de Artifact Registry del sistema:

       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
      
    • Actualizar Debugger:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-debugger-initial-user --clusterrole=upgrade-debugger --user=keycloak-oidc-initial-user@example.com
      
    • Depurador de Artifact Registry del sistema:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-debugger-initial-user --clusterrole=sar-debugger --user=keycloak-oidc-initial-user@example.com
      
  4. Configura el docker:

    gdcloud auth configure-docker
    

Iniciar la actualización

Sigue estos pasos para iniciar la actualización del dispositivo:

gdcloud appliance upgrade 

Consulta gdcloud appliance upgrade para obtener más información.

El comando sigue estos pasos:

  1. Ejecuta las comprobaciones preparatorias en la máquina de actualización.
  2. Ejecuta las comprobaciones preparatorias del almacenamiento de OTS.
  3. Envía los artefactos al registro de artefactos.
  4. Actualiza el software y el firmware del dispositivo, incluidos los siguientes:
    1. Clúster de administrador raíz de GDC.
    2. Servicios de GDC.
    3. Los sistemas operativos de los nodos físicos y virtuales.
    4. El interruptor.
    5. Almacenamiento

El comando controla las actualizaciones en secuencia y espera a que se complete cada paso. Si completas los pasos y la actualización se realiza correctamente, verás un mensaje similar al siguiente:

The GDC appliance upgrade completed successfully