切断モードで実行される Anthos のアップグレード

このページでは、切断モードで実行される Anthos をアップグレードする方法について説明します。

管理クラスタと Anthos Management Center のアップグレード

インフラストラクチャ オペレータは、管理クラスタと Management Center、およびそのコンポーネントをアップグレードできます。

環境の準備

  1. 次のコマンドを実行して、新しいリリースをダウンロードし、実行権限を設定します。

    cd ~/
    # Download the script which helps download all the latest components
    export VERSION=UPGRADE_VERSION
    
    # Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.9/installing/infrastructure#download
    export INSTALLER_DIGEST=
    export INSTALLER=get-anthos-private-mode-$VERSION.sh
    gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
    if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER
    
    # Note: ~/anthos-baremetal-private-mode should point to the new version.
    ls -al anthos-baremetal-private-mode
    cd ~/anthos-baremetal-private-mode
    

    UPGRADE_VERSION は、アップグレード後の新しいバージョンに置き換えます。

  2. 次のコマンドを使用して、新しいイメージをプライベート レジストリにアップロードします。必ずバージョン UPGRADE_VERSIONactl を使用してください。

    actl images push --private-registry=${PRIVATE_REGISTRY} \
      --images ~/anthos-baremetal-private-mode
    

    アップロード プロセスにより、レジストリにすでに存在しているイメージは自動的にスキップされます。

  3. Helm チャートを Container Registry にアップロードします

管理クラスタのアップグレード

管理クラスタをアップグレードするには、管理クラスタ構成ファイルに対して次の変更のみを行ってから、actl clusters baremetal upgrade コマンドを実行してアップグレードを完了します。

  1. クラスタ構成管理 YAML ファイルで、バージョン文字列を更新し、baremetal.cluster.gke.io/private-mode: "true" アノテーションを追加します。

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: admin
      namespace: cluster-admin
      annotations:
        baremetal.cluster.gke.io/private-mode: "true"
    spec:
      anthosBareMetalVersion: VERSION
    

    VERSION は、新しいベアメタル版 Anthos のバージョン番号に置き換えます。

  2. 次のコマンドを実行して、管理クラスタを更新します。必ずバージョン UPGRADE_VERSIONactl を使用してください。

    actl clusters baremetal upgrade admin --kubeconfig=ADMIN_KUBECONFIG
    

アップグレードの完了には約 15~20 分かかりますが、クラスタのサイズによってはさらに時間がかかる場合があります。

Management Center のアップグレード

インフラストラクチャ オペレータは、Management Center 全体をアップグレードすることも、個々のサブコンポーネントをアップグレードすることもできます。

オプション 1: Management Center 全体をアップグレードする

インフラストラクチャ オペレータは、Management Center そのものを含め、Management Center のすべてのコンポーネントをアップグレードできます。

  1. Management Center のバージョンを確認して、古いバージョンであることを確認します。

    kubectl get AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    

    ADMIN_KUBECONFIG は、管理クラスタ用 kubeconfig ファイルのパスに置き換えます。

  2. 省略可: アップグレードに関するプリフライト チェックを実行します。

    actl platform management-center upgrade --preflight-check-only --kubeconfig=ADMIN_KUBECONFIG
    
  3. アップグレードを開始します(完了するまでに通常 10~15 分ほどかかります)。

    actl platform management-center upgrade --kubeconfig=ADMIN_KUBECONFIG
    
  4. Management Center のバージョンを確認して、バージョンが更新されていることを確認します。

    kubectl get AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    

オプション 2: 個別のコンポーネントをアップグレードする

インフラストラクチャ オペレータは、Management Center で実行される特定のコンポーネントのアップグレードを管理できます。バージョン 1.9 以降では、Anthos Config Management オペレータ、Anthos Service Mesh オペレータ、ベアメタル版 Anthos の 3 つのコンポーネントを個別にアップグレードできます。

コンテナ レジストリにイメージをアップロードしたら、新しいリリースで配送されたパッケージの仕様を公開する必要があります。たとえば、Anthos Config Management 演算子と Anthos Service Mesh 演算子のパッケージ仕様については、services/ をご覧ください。

  1. 新しい Anthos Config Management 演算子のパッケージ仕様を適用します。

    kubectl apply -f ~/anthos-baremetal-private-mode/services/anthos-config-management/package-spec.yaml \
    --kubeconfig=ADMIN_KUBECONFIG
    
  2. Anthos Config Management オペレータの現在のコンポーネント ステータスを確認します。

    kubectl get adminoperator admin-operator \
      --kubeconfig=ADMIN_KUBECONFIG \
      -ojsonpath='{.status.components[?(@.name=="anthos-config-management")]}'
    

    このコマンドにより、現在のバージョンに 1.9.X、現在のバージョン制約に <=1.9.X が得られるとします。

    {"name":"anthos-config-management","version":"1.9.X","versionConstraint":"<=1.9.X"}
    
  3. 新しいバージョンを有効にするには、Admin Operator オブジェクトでバージョンの制約を編集します。

    kubectl edit AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    
  4. エディタで、spec.updateConfigOverride.policies の下にある更新ポリシーを見つけて、それに応じてコンポーネントのバージョンを上げます。spec.updateConfigOverride が省略されているか、構造体値({})が空の場合は、次のようにポリシーを追加します。

    spec:
      updateConfigOverride:
        policies:
        - name: anthos-config-management
          versionConstraint: <=1.9.Y
    

オーバーライドを追加すると、Management Center により、変更がロールアウトされ、新しいバージョンの Anthos Config Management オペレーターが反映されます。

次のコマンドを実行して、新しいバージョンのロールアウトをモニタリングします。新しいバージョンは、以前の 1.9.X から 1.9.Y に変更されます。

kubectl get adminoperator admin-operator \
  --kubeconfig=ADMIN_KUBECONFIG \
  -ojsonpath='{.status.components[?(@.name=="anthos-config-management")].version}' \
  --watch

ロールアウトが完了すると、プラットフォーム管理者が Management Center を通じて新しい Anthos Config Management 演算子を使用できるようになります。

ユーザー クラスタのアップグレード

プラットフォーム管理者は、actl コマンドライン ツール、Management Centerを使用、または API を通してユーザー クラスタを更新できます。

actl

次のコマンドを実行して、ユーザー クラスタを更新します。

actl clusters baremetal upgrade CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG

Console

  1. Management Center コンソールで、[ダッシュボード] メニューに移動します。
  2. [Upgrades] タブをクリックして、利用可能なすべてのアップグレードを表示します。
  3. アップグレードするクラスタの [View Upgrades] をクリックします。
  4. [Upgrade] をクリックして、バージョン、説明、リリースノートへのリンクなど、アップグレードの詳細を確認します。
  5. [次へ] をクリックして確定します。
  6. [Upgrade] をクリックして、クラスタのアップグレードを開始します。

アップグレードが完了するまでは、アップグレード リストのエントリに Upgrade in progress と表示されます。

API

ユーザー クラスタは、Cluster リソースのバージョン文字列を変更することでアップグレードできます。

  1. 次のコマンドを実行して、ユーザー クラスタの Cluster リソースを編集します。

    kubectl edit cluster CLUSTER_NAME -n cluster-CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
    
  2. spec.anthosBareMetalVersion のバージョン文字列を更新すると、コントローラがアップグレードで機能します。

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
      annotations:
        baremetal.cluster.gke.io/private-mode: "true"
    spec:
      type: user
      anthosBareMetalVersion: VERSION
    

    VERSION は、新しいベアメタル版 Anthos のバージョン番号に置き換えます。

次のステップ