移行計画を作成する
VM の移行を開始するには、移行を作成します。これにより、移行プラン オブジェクトが作成されます。通常、移行を実行する前に、生成されたプランをさらに確認してカスタマイズする必要があります。
移行は、移行処理の実行と、migctl
と Google Cloud Console での移行アクティビティとステータスのモニタリングに使用する中心的なオブジェクトです。移行オブジェクトは Kubernetes カスタム リソース定義(CRD)として実装され、Kubernetes PersistentVolumeClaim
などの追加リソースとともに移行計画に含まれています。
始める前に
- 移行元を追加します。
- 次のセクションの説明に従って、仮想マシン(VM)インスタンス ID を確認します。
- Compute Engine を移行元として使用する場合は、移行を作成する前に、移行元の VM を停止してください。移行オブジェクトの作成が完了した後、VM を再起動できます。
VM ID を確認する
VM ID は、ソースタイプに応じて、VM インベントリの閲覧または手動での検索によって確認できます。
VM インベントリを使用して ID を確認する
migctl
を使用する場合は、次のコマンドを発行して VM のリストを表示できます。migctl source list-vms <name> [ --refresh ] [ --wide ]
Google Cloud コンソールの使用時に、ソースタイプを確認すると、そのタイプのすべての VM がリストされたテーブルが表示されます。
手動で ID を検索する
ソースタイプごとに VM ID を手動で検索できます。
Compute Engine
vmId
-- Google Cloud Console に表示される VM の名前。
VMware
vmId
- ソース プラットフォームで認識されている、移行する VM の ID または名前。次のいずれかの値を使用できます。VM 名。各 VM 名が VMware デプロイ全体で一意であることが確実であれば、簡単な VM 名を使用できます。VM 名が重複している可能性がある場合は、以下で説明する VM ID を使用します。
次の画像に示すように、vSphere ウェブ クライアントから VM 名を取得できます。
vSphere の VM ID(MoRef とも呼ばれます)。これは VM を選択すると、vSphere ウェブ クライアントの URL から表示できます。
MoRef は PowerCLI を使用して確認することもできます。
命名の要件
移行に名前を割り当てるのは、Migrate to Containers で作成するときに行います。この名前は次の要件を満たす必要があります。
- 最大文字数は 63 文字とする。
- 小文字の英数字またはハイフン(-)のみを使用する。
- 先頭が英数字である。
- 末尾が英数字である。
サポートされているワークロード
移行を作成する
Linux ワークロードと Windows ワークロード
migctl
ツールまたは Google Cloud コンソールを使用して移行を作成します。
migctl
VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source
my-src --vm-idmy-id --typeserver-type ここで、
--vm-id
にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。ここで、--type
は--type=windows-iis-container
またはlinux-system-container
です。
コンソール
移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
Google Cloud コンソールで [Migrate to Containers] ページを開きます。
[移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
[移行を作成] をクリックします。
移行名を入力します。
移行元の追加で作成した移行元を選択します。
[ワークロード タイプ] を [Image Based System Container] または [Windows IIS container] に設定します。
ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。
[移行を作成] をクリックします。
移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルでは、
sourceProviderRef
のname
フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId
フィールドに Compute Engine インスタンスの名前を指定します。Type
は、--type=windows-iis-container
またはlinux-system-container
のいずれかです。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: linux-system-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
Tomcat ワークロード
Tomcat パラメータを指定する
CATALINA_BASE
と CATALINA_HOME
の値は手動で指定する必要があります。
migctl
Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source my-ce-src --vm-id my-id --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
--vm-id
には、サービス コンソールに表示されるインスタンスの名前を指定します。catalina-base
には、CATALINA_BASE
値をコロンで区切ったリストを指定します。catalina-home
には、CATALINA_HOME
の値を指定します。java-version
は、コンテナで使用される Java バージョンを指定するオプションのパラメータです。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルで、次のフィールドを設定します。
sourceProvider
: 以前に作成された SourceProvider の名前を指定します。sourceId
: Compute Engine VM インスタンスの名前を指定します。parameters
: Tomcat ワークロード固有のパラメータを設定します。
これらのフィールド値が設定された移行ファイルの例を次に示します。
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: tomcat-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: catalina-base value: /opt/tomcat - name: catalina-home value: /opt/tomcat
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
WebSphere traditional ワークロード
WAS_HOME を指定する
WAS_HOME
環境変数は、/opt/IBM/WebSphere/AppServer/
などの WAS traditional がインストールされている場所を指定します。移行を作成する際、Migrate to Containers はこの値を使用してアプリに関する情報を取得するスクリプトを実行し、アプリ プロファイルのパスを決定します。Migrate to Containers がインストール フォルダを検出できない場合は、WAS_HOME
の値を設定できます。
migctl
VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source
my-was-src --vm-idmy-id --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/ ここで、
--vm-id
にはサービス コンソールに表示されるインスタンスの名前を指定します。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルで、次のフィールドを設定します。
sourceProvider
: 以前に作成された SourceProvider の名前を指定します。sourceId
: Compute Engine VM インスタンスの名前を指定します。parameters
: WebSphere ワークロード固有のパラメータを設定します。
これらのフィールド値が設定された移行ファイルの例を次に示します。
apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: websphere-traditional-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id parameters: - name: was_home value: /opt/IBM/WebSphere/AppServer/
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
JBoss ワークロード
migctl
ツールまたは Google Cloud コンソールを使用して移行を作成します。
migctl
VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source
my-src --vm-idmy-id --type=jboss-container --parameters jboss-home=/opt/jboss ここで、
--vm-id
にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。
コンソール
移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
Google Cloud コンソールで [Migrate to Containers] ページを開きます。
[移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
[移行を作成] をクリックします。
移行名を入力します。
移行元の追加で作成した移行元を選択します。
[ワークロード タイプ] を [JBoss container] に設定します。
ソースのインスタンス名を入力します。インスタンス名の決め方については、始める前にをご覧ください。
JBOSS_HOME パラメータを設定して、JBoss インストール パスを使用します。
[移行を作成] をクリックします。
移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルでは、
sourceProviderRef
のname
フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId
フィールドに Compute Engine インスタンスの名前を指定します。[type
] フィールドに「jboss-container
」と入力します。discoveryParameters
に検出パラメータのリストを追加できます。各discoveryParameters
パラメータにはname
とvalue
という 2 つのプロパティがあります。JBoss 移行を作成する場合、jboss-home
というdiscoveryParameters
パラメータのvalue
に JBoss ホームパスを指定する必要があります。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: jboss-container2 discoveryParameters: - name: jboss-home value: /path-to-jboss-home sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
Apache ワークロード
migctl
ツールまたは Google Cloud コンソールを使用して移行を作成します。
migctl
VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source
my-src --vm-idmy-id --type=apache-containerここで、
--vm-id
にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。
コンソール
移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
Google Cloud コンソールで [Migrate to Containers] ページを開きます。
[移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
[移行を作成] をクリックします。
移行名を入力します。
移行元の追加で作成した移行元を選択します。
[ワークロード タイプ] を [Apache container] に設定します。
ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。
[移行を作成] をクリックします。
移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルでは、
sourceProviderRef
のname
フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId
フィールドに Compute Engine インスタンスの名前を指定します。[type
] フィールドに「apache-container
」と入力します。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: apache-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
WordPress ワークロード
migctl
ツールまたは Google Cloud コンソールを使用して移行を作成します。
migctl
VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
移行を作成します。
migctl migration create my-migration --source
my-src --vm-idmy-id --type=wordpress-containerここで、
--vm-id
にはソースタイプのコンソールに表示される VM インスタンスの名前を指定します。
コンソール
移行元が Compute Engine VM の場合、Compute Engine VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
Google Cloud コンソールで [Migrate to Containers] ページを開きます。
[移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
[移行を作成] をクリックします。
移行名を入力します。
移行元の追加で作成した移行元を選択します。
[ワークロード タイプ] を [WordPress container] に設定します。
ソースの VM ID を入力します。VM ID の決定について詳しくは、始める前にをご覧ください。
[移行を作成] をクリックします。
移行の作成が完了すると、[ステータス] 列に [移行計画の生成完了] と表示されます。
CRD
移行を定義するには、
my-migration.yaml
という Migration ファイルを作成します。このファイルでは、
sourceProviderRef
のname
フィールドに、以前に作成された SourceProvider の名前を指定し、sourceId
フィールドに Compute Engine インスタンスの名前を指定します。[type
] フィールドに「wordpress-container
」と入力します。apiVersion: anthos-migrate.cloud.google.com/v1 kind: Migration metadata: name: my-migration namespace: v2k-system spec: type: wordpress-container sourceSnapshotTemplate: spec: sourceProviderRef: name: my-ce-src sourceId: my-id
Compute Engine VM を移行する場合は、VM を停止します。移行を作成するには、VM を停止する必要があります。移行が完了したら、VM を再起動できます。
ファイルを適用します。
kubectl apply -f my-migration.yaml
移行の作成をモニタリングする
migctl
ツールまたは Google Cloud コンソールを使用して移行の作成の進行状況をモニタリングします。
migctl
移行計画の作成フェーズが完了するまで待ちます。
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [1/3] CreateSourceSnapshots Running 13s
Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。
コンソール
移行ステータスに、移行の作成が完了したことが表示されたら、次のステップに進みます。
Google Cloud コンソールで [Migrate to Containers] ページを開きます。
[移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
次の方法で移行のステータスを表示します。
移行の行の [ステータス] 列を表示します。
移行名をクリックします。[移行の詳細] ページが開きます。[モニタリング] タブをクリックして、詳細なステータスを確認するか [イベント] タブをクリックして移行イベントを確認します。
移行の作成が完了すると、[ステータス] に [移行計画の生成完了] と表示されます。
Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。
CRD
kubectl
を使用して、必要なフィールドに JSONPath を指定し、移行情報とステータス MigrationStatus を取得します。
移行計画の作成フェーズが完了するまで待ちます。
2 つの
kubectl wait
コマンドを使用します。1 つは Ready 状態を待機し、もう 1 つは Failed 状態を待機します。移行計画の作成フェーズは、最初の条件が満たされるまで実施されます。unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]} kill ${pids[@]/$met_pid} # terminate the process that did not complete.
wait コマンドが完了したら、オペレーションは完了です。次のステップに進みます。
移行計画のステータスを取得します。
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration
移行計画の準備が整うと
True
を返し、失敗した場合はFalse
を返します。移行の作成フェーズが失敗した場合は、次のコマンドを使用してエラー メッセージを取得します。
kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration
Compute Engine VM を移行する場合は、それから再起動します。このステップの後に、停止した VM は必要ありません。
次のステップ
- データの移行方法を学習する。