デバイスを更新してパッチを適用する

このページでは、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
    

認証

構成済みの ID プロバイダで認証し、ユーザー ID とクラスタの 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 --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 Suffix Viewer:

       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
    

アップグレードを開始する

アプライアンスのアップグレードを開始する手順は次のとおりです。

gdcloud appliance upgrade 

詳細については、gdcloud appliance upgrade をご覧ください。

このコマンドは、次の手順を実行します。

  1. アップグレード マシンでプリフライト チェックを実行します。
  2. OTS ストレージのプリフライト チェックを実行します
  3. アーティファクトをアーティファクト レジストリに push します。
  4. アプライアンスのソフトウェアとファームウェアをアップグレードします。これには次のものが含まれます。
    1. GDC ルート管理クラスタ。
    2. GDC サービス。
    3. 物理ノードと仮想ノードのオペレーティング システム(OS)。
    4. 切り替え。
    5. ストレージ

このコマンドは、更新を順番に実行し、各ステップの完了を待ちます。手順を完了し、アップグレードが成功すると、次のようなメッセージが表示されます。

The GDC appliance upgrade completed successfully