クラスタをアップグレードする

新しいバージョンの bmctl をインストールすると、以前のバージョンで作成した既存のクラスタをアップグレードできます。Anthos clusters on bare metal の最新バージョンにクラスタをアップグレードすると、クラスタに追加機能と修正が適用されます。また、引き続きクラスタのサポートを保証します。管理者、ハイブリッド、スタンドアロン、ユーザー クラスタは、bmctl upgrade cluster コマンドを使用してアップグレードできます。

アップグレードに関する考慮事項

以下のセクションでは、クラスタをアップグレードする前に考慮すべきルールとベスト プラクティスの概要を説明します。

プレビューの機能

プレビュー機能は変更される場合があり、テストと評価のみを目的として提供されています。本番環境のクラスタでプレビュー機能を使用しないでください。プレビュー機能を使用するクラスタを必ずアップグレードできるというわけではありません。場合によっては、プレビュー機能を使用するクラスタのアップグレードを明示的にブロックすることがあります。

アップグレードに関連する重要な変更点については、リリースノートをご覧ください。

SELinux

コンテナを保護するために SELinux を有効にする場合は、すべてのホストマシンで SELinux を Enforced モードで有効にする必要があります。リリース 1.9.0 以降のベアメタル版 Anthos クラスタでは、クラスタの作成前かアップグレード後に SELinux を有効または無効にできます。Red Hat Enterprise Linux(RHEL)と CentOS では、SELinux がデフォルトで有効になっています。ホストマシンで SELinux が無効になっている場合や、不明な場合は、SELinux を使用したコンテナの保護をご覧ください。

ベアメタル版 Anthos クラスタは、RHEL システムと CentOS システムの SELinux のみをサポートしています。

アップグレードのバージョン ルール

新しいバージョンの bmctl をダウンロードしてインストールすると、bmctl の以前のバージョンで作成またはアップグレードされた管理者、ハイブリッド、スタンドアロン、ユーザー クラスタをアップグレードできます。クラスタを下位バージョンにダウングレードすることはできません。

クラスタは、使用している bmctl のバージョンと一致するバージョンにのみアップグレードできます。つまり、bmctl のバージョン 1.13.10 を使用している場合は、クラスタをバージョン 1.13.10 にのみアップグレードできます。

パッチ バージョンのアップグレード

任意のマイナー バージョンについて、より上位のパッチ バージョンにアップグレードできます。つまり、YX より大きい限り、1.13.X バージョン クラスタをバージョン 1.13.Y にアップグレードできます。たとえば、1.12.0 から 1.12.1 にアップグレードしたり、1.12.1 から 1.12.3 にアップグレードしたりできます。クラスタに最新のセキュリティ修正が適用されているように、可能な限り最新のパッチ バージョンにアップグレードすることをおすすめします。

マイナー バージョンのアップグレード

パッチ バージョンに関係なく、クラスタをマイナー バージョン間でアップグレードできます。つまり、1.N.X がお使いのクラスタのバージョンで、N+1 が次に使用可能なマイナー バージョンであれば、1.N.X から 1.N+1.Y にアップグレードできます。この場合、パッチ バージョン XY はアップグレード ロジックに影響しません。たとえば、1.12.3 から 1.13.10 にアップグレードできます。

クラスタのアップグレードでは、マイナー バージョンをスキップすることはできません。クラスタのバージョンから 2 つ以上離れたマイナー バージョンにアップグレードしようとすると、bmctl がエラーを出力します。たとえば、バージョン 1.11.0 のクラスタをバージョン 1.13.0 にアップグレードすることはできません。

管理クラスタは、同じマイナー バージョンまたは以前のマイナー バージョンのユーザー クラスタを管理できます。マネージド ユーザー クラスタは、管理クラスタより 1 つ前のマイナー バージョン以降でなければなりません。そのため、管理クラスタを新しいマイナー バージョンにアップグレードする前に、すべてのマネージド ユーザー クラスタが管理クラスタと同じマイナー バージョンであることを確認してください。

次のアップグレード手順の例では、バージョン 1.12.2 からベアメタル版 1.13.10 の Anthos クラスタへのアップグレード プロセスを示しています。

セルフマネージド クラスタのインプレース アップグレード

ベアメタル リリース 1.13.1 の Anthos クラスタから、管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタでインプレース アップグレードを実行できます。インプレース アップグレードにより、ブートストラップ クラスタが不要になり、プロセスが簡素化され、アップグレードのリソース要件が削減されます。セルフマネージド クラスタでインプレース アップグレードを行うには、バージョンが 1.13.0 以降である必要があります。

インプレース アップグレードを実行するには、bmctl または kubectl を使用します。

bmctl

アップグレード プロセスは、bmctl upgrade cluster コマンドを除いて標準のアップグレード プロセスと同じです。

  • インプレース アップグレードを開始するには、upgrade コマンドで --use-bootstrap=false フラグを使用します。

    bmctl upgrade cluster -c CLUSTER_NAME --use-bootstrap=false \
        --kubeconfig ADMIN_KUBECONFIG
    

    以下を置き換えます。

    • CLUSTER_NAME: アップグレードするクラスタの名前。
    • ADMIN_KUBECONFIG: 管理クラスタの kubeconfig ファイルへのパス。

標準のアップグレード プロセスと同様に、クラスタのアップグレードの一環としてプリフライト チェックが実行され、クラスタのステータスとノードの健全性が検証されます。プリフライト チェックが不合格の場合、クラスタのアップグレードは停止します。ブートストラップ クラスタが作成されないため、障害をトラブルシューティングするには、クラスタと関連ログを調べます。

kubectl

kubectl を使用してセルフマネージド クラスタをアップグレードするには、次の手順を行います。

  1. クラスタ構成ファイルを編集して、anthosBareMetalVersion をアップグレード先のターゲット バージョンに設定します。

  2. アップグレードを開始するには、次のコマンドを実行します。

    kubectl apply -f CLUSTER_CONFIG_PATH
    

    CLUSTER_CONFIG_PATH は、クラスタの構成ファイルへのパスに置き換えます。

標準のアップグレード プロセスと同様に、クラスタのアップグレードの一環としてプリフライト チェックが実行され、クラスタのステータスとノードの健全性が検証されます。プリフライト チェックが不合格の場合、クラスタのアップグレードは停止します。ブートストラップ クラスタが作成されないため、障害をトラブルシューティングするには、クラスタと関連ログを調べます。

Pod の密度

ベアメタル版 Anthos クラスタは、nodeConfig.PodDensity.MaxPodsPerNode を持つノードあたり最大 250 個のポッドの構成をサポートしています。Pod 密度はクラスタの作成時にのみ構成できます。既存のクラスタのポッド密度設定を更新することはできません。

既知の問題

クラスタのアップグレードに関連する潜在的な問題については、既知の問題ページのベアメタル版 Anthos クラスタのアップグレードをご覧ください。

管理クラスタ、スタンドアロン クラスタ、ハイブリッド クラスタ、ユーザー クラスタをアップグレードする

新しいバージョンの bmctl をダウンロードしてインストールすると、以前のバージョンで作成した管理クラスタ、ハイブリッド クラスタ、スタンドアロン クラスタ、ユーザー クラスタをアップグレードできます。特定のバージョンの bmctl については、クラスタを同じバージョンにのみアップグレードできます。

まず、最新の bmctl をダウンロードしてから、適切なクラスタ構成ファイルを変更し、bmctl upgrade cluster コマンドを発行してアップグレードを完了します。

  1. 最新の bmctlCloud Storage バケットからダウンロードし、chmod を使用してすべてのユーザーに bmctl の実行権限を付与します。

    gsutil cp gs://anthos-baremetal-release/bmctl/1.13.10/linux-amd64/bmctl bmctl
    chmod a+x bmctl
    
  2. クラスタの構成ファイルを修正して、ベアメタル版 Anthos クラスタのクラスタ バージョンを 1.12.2 から 1.13.10 に変更します。以下に、管理クラスタの構成ファイルの例を示します。

    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: cluster1
      namespace: cluster-cluster1
    spec:
      # Cluster type. This can be:
      #   1) admin:  to create an admin cluster. This can later be used to create user clusters.
      #   2) user:   to create a user cluster. Requires an existing admin cluster.
      #   3) hybrid: to create a hybrid cluster that runs admin cluster components and user workloads.
      #   4) standalone: to create a cluster that manages itself, runs user workloads, but does not manage other clusters.
      type: admin
      # Anthos cluster version.
      # Change the following line from 1.12.2 to 1.13.10, shown below
      anthosBareMetalVersion: 1.13.10
    
  3. クラスタを 1.13.10 にアップグレードするときに、クラスタがまだ登録されていない場合は、Connect を使用してプロジェクトフリートに登録する必要があります。

    1. サービス アカウントを手動で作成して JSON キーファイルを取得する方法については、Google サービスとサービス アカウントの有効化に関するページの Connect に使用するサービス アカウントを構成するをご覧ください。
    2. ダウンロードした JSON キーを、クラスタ構成ファイルの gkeConnectAgentServiceAccountKeyPath および gkeConnectRegisterServiceAccountKeyPath フィールドで参照します。
  4. bmctl upgrade cluster コマンドを使用してアップグレードを完了します。

    bmctl upgrade cluster -c CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG
    

    以下を置き換えます。

    • CLUSTER_NAME: アップグレードするクラスタの名前。
    • ADMIN_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス。

    プリフライト チェックは、クラスタのアップグレードの一環として実行され、クラスタのステータスとノードの健全性を検証します。プリフライト チェックに失敗した場合、クラスタのアップグレードは続行されません。