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

スタンドアローン管理クラスタで Tanzu Kubernetes Grid をアップグレードするには、まずスタンドアローン管理クラスタをアップグレードする必要があります。ワークロード クラスタは、それを管理する管理クラスタをアップグレードするまでアップグレードできません。

vSphere with Tanzu スーパーバイザーで TKG を実行している場合は、この手順を実行しないでください。代わりに、vSphere の一部としてスーパーバイザーをアップグレードし、TKr のアップグレードを通してスーパーバイザーの Kubernetes バージョンを更新します。

管理クラスタをアップグレードすると、それが実行する自動管理パッケージも自動的にアップグレードされます。

Tanzu CLI をインストールした後でも、スタンドアローンの管理クラスタがアップグレードされるまでは、コンテキスト固有のすべての CLI コマンド グループ(tanzu cluster, tanzu kubernetes-release)は使用できず、Tanzu CLI --help の出力にも含まれません。

管理クラスタとワークロード クラスタは、クライアント証明書を使用してクライアントを認証します。これらの証明書は 1 年間有効です。更新するには、クラスタを少なくとも年 1 回アップグレードするか、手動でローテーションします。これは、「クラスタ証明書の更新(スタンドアローン MC)」または VMware ナレッジベースの記事「Tanzu Kubernetes Grid クラスタでの証明書のローテーション方法」で説明されています。

重要

以前のリリースでカスタム クラスタ マニフェストからワークロード クラスタを作成した場合は、管理クラスタをアップグレードする前に実行する手順があります。詳細については、「カスタム クラスタのアップグレード」を参照してください。

前提条件

  • アップグレードの既知の問題を確認してあること。「既知の問題」を参照してください。
  • 管理クラスタをアップグレードする手順の前に行う、「Tanzu Kubernetes Grid のアップグレード」の手順を実行済みであること。
  • 以前のバージョンの Tanzu Kubernetes Grid を、インターネットが制限された環境に展開している場合は、インターネットが制限された環境を準備する手順を実行して、新しいコンポーネント イメージ バージョンで、必要なスクリプトを再作成して実行してあること。
  • 以前のバージョンの管理クラスタが LDAP ID プロバイダと統合されている場合は、以下の「(LDAP のみ)LDAP 設定の更新」の手順を実行してあること。

(LDAP のみ)LDAP 設定の更新

Tanzu Kubernetes Grid v2.3 以降では、LDAP ID プロバイダを構成するときに LDAP_BIND_DN 変数と LDAP_BIND_PASSWORD 変数を設定する必要があります。LDAP ID プロバイダを使用するように構成された管理クラスタを Tanzu Kubernetes Grid v2.3 にアップグレードする前に、これらの変数を設定します(まだ設定していない場合)。LDAP_BIND_DNLDAP_BIND_PASSWORD を設定せずに管理クラスタをアップグレードすると、Pinniped App の展開に失敗し、App カスタム リソースがエラーを返します。これらの構成変数の詳細については、「構成ファイル変数リファレンス」の「ID プロバイダ - LDAP」を参照してください。

LDAP_BIND_DNLDAP_BIND_PASSWORD を更新するには、管理クラスタのバージョンに対応する management-cluster CLI プラグインのバージョンを使用する必要があります。管理クラスタをアップグレードする前に、次の手順を実行します。

  1. 管理クラスタの構成ファイルに LDAP_BIND_DNLDAP_BIND_PASSWORD を追加します。

  2. management-cluster プラグインの正しいバージョンがマシンにインストールされていることを確認します。Tanzu Kubernetes Grid v2.2.0 の場合、正しいバージョンは v0.29.0 です。

    tanzu plugin list
    

    management-cluster プラグインの正しいバージョンがインストールされていない場合は、次の手順を実行します。

    1. 使用可能なすべてのバージョンのリストで、管理クラスタのバージョンに対応する management-cluster プラグインのバージョンを見つけます。

      tanzu plugin search -n management-cluster --show-details
      
    2. プラグインをインストールします。

      tanzu plugin install management-cluster --version PLUGIN-VERSION
      

      ここで、PLUGIN-VERSION は前の手順で確認したバージョンです。

  3. 以下を実行して、Pinniped パッケージの新しいシークレットを生成します。

    FILTER_BY_ADDON_TYPE=authentication/pinniped tanzu management-cluster create --dry-run -f YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml > PINNIPED-PACKAGE-SECRET.yaml
    

    ここで、YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml は前の手順で更新した構成ファイルで、PINNIPED-PACKAGE-SECRET.yaml は Pinniped パッケージの新しいシークレットです。

  4. 生成されたシークレットに更新された設定が含まれていることを確認し、kubectl コンテキストを管理クラスタに設定して、シークレットを適用します。

    kubectl apply -f PINNIPED-PACKAGE-SECRET.yaml
    

手順

  1. tanzu context use コマンドを実行して、アップグレード可能な管理クラスタのインタラクティブ リストを表示します。

    tanzu context use
    
  2. アップグレードする管理クラスタを選択します。詳細については、「管理クラスタの一覧表示とコンテキストの変更」を参照してください。

  3. クラスタの管理者認証情報を取得します。tanzu CLI エイリアス mc は、management-cluster の省略形です。

    tanzu mc kubeconfig get --admin
    
  4. kubectl を管理クラスタに接続します。

    kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
    
  5. 管理クラスタが Azure で実行されている場合は、クラスタをアップグレードする前に AZURE_CLIENT_SECRET 環境変数を設定します。

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. tanzu mc upgrade コマンドを実行し、y と入力して確認します。

    このコマンドを実行すると、Pinniped ポッドの再起動が完了するまで、管理者以外のユーザーは、関連付けられたワークロード クラスタにログインできなくなります。

    tanzu mc upgrade
    

    IaaS アカウント内の複数のベース仮想マシン イメージに、アップグレード対象と同じバージョンの Kubernetes がある場合は、--os-name オプションを使用して、必要な OS を指定します。詳細については、「クラスタをアップグレードする際の OS の選択」を参照してください。

    たとえば、vSphere で Kubernetes v1.26.5 を持つ Photon OVA テンプレートと Ubuntu OVA テンプレートの両方をアップロードした場合は、--os-name ubuntu を指定して、Ubuntu 仮想マシンで実行するように管理クラスタをアップグレードします。

    tanzu mc upgrade --os-name ubuntu
    

    クラスタをアップグレードするときに確認手順をスキップするには、--yes オプションを指定します。

    tanzu mc upgrade --yes
    

    アップグレード プロセスでは、まず、管理クラスタで実行されている vSphere、Amazon Web Services (AWS)、または Azure のクラスタ API プロバイダがアップグレードされます。次に、管理クラスタのすべての制御プレーン ノードとワーカー ノードの Kubernetes のバージョンがアップグレードされます。

    重要

    管理クラスタのアップグレード中は、管理クラスタまたは管理クラスタが管理するワークロード クラスタに対して、tanzu cluster または tanzu mc コマンドを実行しないでください(たとえば、別のブートストラップ マシンやシェル ウィンドウから)。

    アップグレードが完了する前にタイムアウトした場合は、デフォルトの 30 分よりも大きい値を指定した --timeout オプションを指定して、tanzu mc upgrade を再度実行します。

    tanzu mc upgrade --timeout 45m0s
    

    v2.3 CLI をインストールした後、管理クラスタをアップグレードするまでは、コンテキスト固有のすべての CLI コマンド グループ(tanzu clustertanzu kubernetes-release)およびすべての management-cluster プラグイン コマンド(ただし tanzu mc upgradetanzu mc create は除く)は使用できず、Tanzu CLI --help の出力にも含まれません。

  7. アップグレードが完了したら、tanzu cluster list コマンドを --include-management-cluster -A オプションと一緒に再度実行して、管理クラスタがアップグレードされていることを確認します。

    tanzu cluster list --include-management-cluster -A
    

    管理クラスタで新しいバージョンの Kubernetes が実行されているが、ワークロード クラスタでは引き続き以前のバージョンの Kubernetes が実行されていることがわかります。

     NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLA   TKR
     k8s-1-24-11-cluster  default     running   1/1           1/1      v1.24.11+vmware.1  <none>      dev   v1.24.11---vmware.1-tkg.1
     k8s-1-25-7-cluster   default     running   1/1           1/1      v1.25.7+vmware.1  <none>       dev   v1.25.7---vmware.1-tkg.1
     mgmt-cluster         tkg-system  running   1/1           1/1      v1.26.5+vmware.1   management  dev   v1.26.5---vmware.2-tkg.1
    
  8. 管理者の kubeconfig を再生成します。

    tanzu management-cluster kubeconfig get --admin
    

    次に示すのは、コマンドのサンプル出力です。

    Credentials of cluster 'mgmt' have been saved
    You can now access the cluster by running 'kubectl config use-context mgmt-admin@mgmt'
    

次の手順

次の作業を実行できます。

check-circle-line exclamation-circle-line close-line
Scroll to top icon