12.6. Migration Toolkit for Virtualization (MTV) プロバイダーについて


OpenShift Container Platform クラスター間で仮想マシンを移行するには、移行に含めるクラスターごとに OpenShift Container Platform プロバイダーを設定する必要があります。すでにクラスターに MTV がインストールされている場合は、ローカルプロバイダーがすでに存在します。

重要

クラスター間のライブマイグレーションはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、以下のリンクを参照してください。

12.6.1. プロバイダーのルート認証局の設定

移行に含めるクラスターごとに OpenShift Container Platform プロバイダーを設定する必要があり、各プロバイダーにはクラスターの認証局 (CA) が必要です。プロバイダーの障害の原因となる CA の有効期限を回避するために、クラスター全体にルート CA を設定することが重要です。

手順

  1. プロバイダーを作成するクラスターに対して次のコマンドを実行します。

    $ oc get cm kube-root-ca.crt -o=jsonpath={.data.ca\\.crt}
  2. 出力された証明書をコピーします。
  3. Migration Toolkit for Virtualization (MTV) Web コンソールで、プロバイダーを作成して OpenShift Virtualization を選択します。
  4. 次の例に示すように、証明書を CA certificate フィールドにペーストします。

    -----BEGIN CERTIFICATE-----
    <CA_certificate_content>
    -----END CERTIFICATE-----

12.6.2. MTV プロバイダーで使用する長期間有効なサービスアカウントとトークンを作成する

Migration Toolkit for Virtualization (MTV) Web コンソールで OpenShift Virtualization プロバイダーを登録する場合、MTV がクラスターと対話できるようにする認証情報を提供する必要があります。長期間有効なサービスアカウントとクラスターロールバインディングを作成すると、移行中に仮想マシンリソースの読み取りと作成を行うための永続的な権限が MTV に付与されます。

手順

  1. 次の例に示すように、クラスターロールを作成します。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: live-migration-role
    rules:
      - apiGroups:
          - forklift.konveyor.io
        resources:
          - '*'
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - ""
        resources:
          - secrets
          - namespaces
          - configmaps
          - persistentvolumes
          - persistentvolumeclaims
        verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
      - apiGroups:
          - k8s.cni.cncf.io
        resources:
          - network-attachment-definitions
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - storage.k8s.io
        resources:
          - storageclasses
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - kubevirt.io
        resources:
          - virtualmachines
          - virtualmachines/finalizers
          - virtualmachineinstancemigrations
        verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
      - apiGroups:
          - kubevirt.io
        resources:
          - kubevirts
          - virtualmachineinstances
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - cdi.kubevirt.io
        resources:
          - datavolumes
          - datavolumes/finalizers
        verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
      - apiGroups:
          - apps
        resources:
          - deployments
        verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
      - apiGroups:
          - instancetype.kubevirt.io
        resources:
          - virtualmachineclusterpreferences
          - virtualmachineclusterinstancetypes
        verbs:
          - get
          - list
          - watch
      - apiGroups:
          - instancetype.kubevirt.io
        resources:
          - virtualmachinepreferences
          - virtualmachineinstancetypes
        verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
  2. 次のコマンドを実行して、クラスターのロールを作成します。

    $ oc create -f <filename>.yaml
  3. 次のコマンドを実行してサービスアカウントを作成します。

    $ oc create serviceaccount <service_account_name> -n <service_account_namespace>
  4. 次のコマンドを実行して、サービスアカウントをクラスターロールにリンクするクラスターロールバインディングを作成します。

    $ oc create clusterrolebinding <service_account_name> --clusterrole=<cluster_role_name> --serviceaccount=<service_account_namespace>:<service_account_name>
  5. 次のマニフェストを YAML ファイルとして保存して、トークンを保持するシークレットを作成します。

    apiVersion: v1
    kind: Secret
    metadata:
      name: <name_of_secret>
      namespace: <namespace_for_service_account>
      annotations:
        kubernetes.io/service-account.name: <service_account_name>
    type: kubernetes.io/service-account-token
  6. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f <filename>.yaml
  7. シークレットが入力されたら、次のコマンドを実行してサービスアカウントベアラートークンを取得します。

    $ TOKEN_BASE64=$(oc get secret "<name_of_secret>" -n "<namespace_bound_to_service_account>" -o jsonpath='{.data.token}')
      TOKEN=$(echo "$TOKEN_BASE64" | base64 --decode)
      echo "$TOKEN"
  8. 出力されたトークンをコピーします。
  9. Migration Toolkit for Virtualization (MTV) Web コンソールでプロバイダーを作成し、OpenShift Virtualization を選択するときに、トークンを Service account bearer token フィールドにペーストします。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る