クラスタ ノードで使用されるストレージ クラスを変更して、ワークロード クラスタを更新できます。

クラスタ仕様の storageClass パラメータの値を変更することで、TKG 2.0 クラスタのローリング アップデートを開始できます。

前提条件

このタスクでは、kubectl edit コマンドを使用する必要があります。このコマンドを実行すると、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで、クラスタ マニフェストが開かれます。ファイルを保存すると、変更が反映されてクラスタが更新されます。kubectl のエディタを構成するには、kubectl のテキスト エディタの構成を参照してください。

手順

  1. スーパーバイザー で認証します。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. ターゲット ワークロード クラスタがプロビジョニングされている vSphere 名前空間 にコンテキストを切り替えます。
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 使用可能なストレージ クラスを判別して、使用するクラスを決定するには、次のコマンドを実行します。
    kubectl describe tanzukubernetescluster CLUSTER-NAME
  4. 次のコマンドを実行して、クラスタのマニフェストを編集します。
    v1alpha3 クラスタ:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    v1beta1 クラスタ:
    kubectl edit cluster/CLUSTER-NAME
  5. storageClass の値を変更して、マニフェストを編集します。
    たとえば、v1alpaha3 クラスタの場合、制御プレーンおよびワーカー ノードに silver-storage-class クラスを使用しないようにクラスタのマニフェストを変更します。
    spec:
      topology:
        controlPlane:
          ...
          storageClass: silver-storage-class
        workers:
          ...      
          storageClass: silver-storage-class
    制御プレーンおよびワーカー ノードに gold-storage-class クラスを使用するには、次の手順を実行します。
    spec:
      topology:
        controlPlane:
          ...
          storageClass: gold-storage-class
        workers:
          ...      
          storageClass: gold-storage-class
    同様に、v1beta1 クラスタをプロビジョニングした場合、クラスタ仕様の variables.storageclass の値をストレージ クラスの名前で更新します。
  6. マニフェスト ファイルに行った変更内容を保存します。
    ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドで、 Tanzu Kubernetes Grid は新しいノード仮想マシンをプロビジョニングし、古い仮想マシンをスピンダウンします。
  7. kubectl から、マニフェストの編集が正常に記録されたことが報告されているかを確認します。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    注: エラーが表示された場合、またはクラスタ マニフェストが正常に編集されたことが kubectl から報告されない場合は、KUBE_EDITOR 環境変数を使用して、デフォルトのテキスト エディタが適切に構成されていることを確認してください。 kubectl のテキスト エディタの構成を参照してください。
  8. クラスタが更新されたことを確認します。
    v1alpha3 クラスタ:
    kubectl get tanzukubernetescluster
    v1beta1 クラスタ:
    kubectl get cluster