以前のバージョンの VMware Cloud Director Container Service Extension を使用して作成されたクラスタでは、ワンタイム スクリプト アップグレードを実行する必要があります。これにより、クラスタは、使用する VMware Cloud Director Container Service Extension との互換性を持つようになります。

デフォルトでは、以前のバージョンの VMware Cloud Director Container Service Extension で作成されたクラスタは、以下に示す以前のバージョンの Kubernetes コンポーネントで動作します。以下に示す新しいバージョンにアップグレードする必要があります。
Kubernetes コンポーネント 既存のバージョン 4.2 のアップグレード バージョン 4.2.1 のアップグレード バージョン
Kubernetes Cloud Provider for VMware Cloud Director 1.5.0、1.4.1、またはそれ以前のバージョン 1.5.0 1.6.0
Kubernetes Container Storage Interface driver for VMware Cloud Director 1.5.0、1.4.1、またはそれ以前のバージョン 1.5.0 1.6.0
Kubernetes Cluster API Provider for VMware Cloud Director v1.2.0、v1.1.1、またはそれ以前のバージョン v1.2.0 v1.3.0
RDE-Projector 0.7.0、0.6.1、またはそれ以前のバージョン 0.7.0 0.7.0

前提条件

このタスクを実行する前に、次の前提条件が満たされていることを確認します。
  • マシンは Ubuntu GNU/Linux 20.04 オペレーティング システムを使用する必要があります。
  • kubectl がインストールされている必要があります。詳細については、「Install and Set Up kubectl on Linux」を参照してください。
  • Docker をインストールし、操作できることを確認します。詳細については、「Install Docker Engine」を参照してください。
  • クラスタの kubeconfig が、アクセス可能なパスのマシンに置かれていることを確認します。

手順

  1. 次のコマンドを使用して $HOME ディレクトリを設定します。
    export $HOME=<directory of choice>
    注: $HOME ディレクトリが正しく設定されていることを確認するには、次のコマンドを使用して $HOME ディレクトリを表示します。結果が空白であってはいけません。
    echo $HOME
  2. 次のコマンドを使用して、クラスタ アップグレード スクリプトの内容をマウントして保存するためのフォルダ構造を作成します。
    mkdir -p $HOME/cluster-upgrade-script
  3. 作成したフォルダに移動し、次のコマンドを使用して、http://projects.registry.vmware.com から cluster-upgrade-script イメージをプルします。

    4.2 の場合:

    cd $HOME/cluster-upgrade-script
    docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2

    4.2.1 の場合:

    cd $HOME/cluster-upgrade-script
    docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
  4. イメージをプルしたら、Docker を使用してコンテナを作成して抽出することにより、イメージの内容をフォルダに抽出します。

    4.2 の場合:

    docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2
    docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2

    4.2.1 の場合:

    docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
    docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
  5. 内容がフォルダに抽出されたら、一時コンテナは削除して問題ありません。
    docker container rm "temp_container" 
  6. すべてのコンテンツがメイン フォルダに抽出されたら、ディレクトリを開き、スクリプトの権限を更新します。
    cd $HOME/cluster-upgrade-script
    chmod +x upgrade_cluster_components.sh
  7. メイン フォルダで次のコマンドを実行します。
    ./upgrade_cluster_components.sh kubeconfig-absolute-file-path [image registry] 
    
    Example: ./upgrade_cluster_components.sh $HOME/kubeconfig-cluster.txt projects.registry.vmware.com

    image_registry はオプションのパラメータで、スクリプトがイメージをプルする元のレジストリを定義するもので、CSI/CPI CRS、CAPVCD マニフェスト、clusterctl などのイメージがここにホストされることが想定されています。

    プライベート、ローカル、エアギャップのレジストリを使用していない場合は、projects.registry.vmware.comimage_registry として使用します。パラメータが空の場合は、デフォルトで image_registry: projects.registry.vmware.com. が使用されます。

    プライベートまたはローカル レジストリの場合は、パラメータにレジストリ リンクを使用します。たとえば、my-private.registry.com。スクリプトを実行する仮想マシンがこのレジストリを信頼していることを確認します。信頼していない場合、x509 certificate signed by unknown authority などのエラーが発生する可能性があります。

    注:
    • スクリプトを実行すると、すべてのイメージ アーティファクトが $HOME/cluster-upgrade-packages/ にダウンロードされます。
    • スクリプトからのアップグレード中にエラーが発生した場合は、このフォルダを削除し、スクリプトを再度実行してこのフォルダを作成するのが安全な方法です。
    • $HOME/.cluster-api に、clusterctl 用のフォルダが追加で作成されます。このフォルダはスクリプトの実行を再試行すると作成されるので、削除しても問題ありません。

結果

アップグレード クラスタ スクリプトの実行が正常に完了すると、クラスタ Kuberetes コンポーネントのバージョンが更新されます。更新された Kubernetes コンポーネントのバージョンは、Kubernetes Container Clusters ユーザー インターフェイスで確認できます。