この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

VMware vSphereのインツリーからアウトオブツリーへの移行

Kubernetesは、クラウドプロバイダーのインツリー管理から離れつつあります。VMware vSphereには、vSphereクラウドプロバイダーとクラウドストレージプラグインをインストールすることで使用できるアウトオブツリーのクラウドプロバイダーがあります。

このページでは、インツリーのvSphereクラウドプロバイダーからアウトオブツリーへの移行方法と、移行後の既存のVMの管理方法について説明します。

公式の vSphere移行ドキュメントに記載されている手順に従い、Rancherで実行する手順を提供します。

クラウド構成フォーマットの制限

次のクラウド構成フォーマットを使用してプロビジョニングされた既存のボリュームは、vSphereクラウドストレージインターフェース(CSI)の既存のバグのために移行されません。

クラウド構成がデータストアとリソースプールパスのためにこのフォーマットを持っている場合、vSphere CSIドライバーはそれを認識できません:

default-datastore: </datacenter>/datastore/<default-datastore-name>
resourcepool-path: "</datacenter>/host/<cluster-name>/Resources/<resource-pool-name>"

次のフォーマットを使用してインツリーのプロバイダーでプロビジョニングされたボリュームは、正しく移行されます:

default-datastore: <default-datastore-name>
resourcepool-path: "<cluster-name>/Resources/<resource-pool-name>"

このバグを追跡しているRancherの問題: https://github.com/rancher/rancher/issues/31105

前提条件

  • vSphere CSIの移行にはvSphere 7.0u1が必要です。既存のインツリーのvSphereボリュームを管理できるようにするために、vSphereを7.0u1にアップグレードしてください。

  • Kubernetesのバージョンは1.19以上でなければなりません。

マイグレーション

1.CPIプラグインをインストールする

CPIをインストールする前に、すべてのノードに`node.cloudprovider.kubernetes.io/uninitialized=true:NoSchedule`のテイントを適用する必要があります。

これは、次のコマンドを実行することで行うことができます:

curl -O https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh

または:

wget https://raw.githubusercontent.com/rancher/helm3-charts/56b622f519728378abeddfe95074f1b87ab73b1e/charts/vsphere-cpi/taints.sh
chmod +x taints.sh
./taints.sh <path to kubeconfig if running the command outside the cluster>

すべてのノードがスクリプトを実行してテイントされたら、Helm vSphere CPIチャートを起動してください。

  1. *☰ > クラスター管理*をクリックします。

  2. vSphere CPIチャートがインストールされるクラスターに移動し、*Explore*をクリックします。

  3. アプリ  チャートをクリックしてください。

  4. *vSphere CPI*をクリックしてください。

  5. [*インストール]*をクリックします。

  6. 必要なvCenterの詳細を入力し、*インストール*をクリックしてください。

vSphere CPIは、vSphere CSIドライバーに必要なProviderIDで全ノードを初期化します。

次のコマンドを使用して、すべてのノードがProviderIDで初期化されているか確認してください:

kubectl describe nodes | grep "ProviderID"

2.CSIドライバーをインストールしてください。

  1. *☰ > クラスター管理*をクリックします。

  2. vSphere CSIチャートがインストールされるクラスターに移動し、*Explore*をクリックしてください。

  3. アプリ  チャートをクリックしてください。

  4. *vSphere CSI*をクリックしてください。

  5. [*インストール]*をクリックします。

  6. 必要なvCenterの詳細を入力し、*インストール*をクリックしてください。

  7. *インストール前にHelmオプションをカスタマイズ*にチェックを入れ、*次へ*をクリックしてください。

  8. *機能*タブで、*CSIマイグレーションを有効にする*にチェックを入れてください。

  9. オプションで、*ストレージ*タブに移動し、データストアを設定してください。このチャートは、`csi.vsphere.vmware.com`をプロビジョナーとして持つStorageClassを作成します。このStorageClassを作成する際に、CSIボリュームプロビジョニングに使用するデータストアのURLを提供できます。データストアのURLは、データストアを選択し、サマリータブに移動することでvSphereクライアントで見つけることができます。StorageClassの詳細を入力してください。

  10. [*インストール]*をクリックします。

3.CSIマイグレーション機能フラグを有効にするためにクラスターを編集してください。

  1. クラスターを編集している間、Kubernetesのバージョンが1.19未満の場合は、*Kubernetesバージョン*のドロップダウンからKubernetesバージョン1.19以上を選択してください。

  2. 機能フラグを有効にするために、「YAMLとして編集」をクリックし、kube-controllerとkubeletの下に次の内容を追加してください:

       extra_args:
         feature-gates: "CSIMigration=true,CSIMigrationvSphere=true"

4.ワーカーノードをドレインしてください。

ワーカーノードは、kubeletおよびkube-controller-managerの引数を変更する前に、アップグレード中にドレインされなければなりません。

  1. *☰ > クラスター管理*をクリックします。

  2. ワーカーノードをドレインするクラスターに移動し、*⋮ > 設定を編集*をクリックしてください。

  3. *高度なオプション*セクションで、フィールド*最大ワーカーノードの利用不可*を1に設定します。

  4. アップグレード中にノードをドレインするには、ドレインノード  はいを選択してください。

  5. *強制*と*ローカルデータを削除*を*true*に設定します。

  6. クラスターをアップグレードするには、*保存*をクリックします。