Migrate to Containers を使用して Linux VM を移行する
このクイックスタートでは、Compute Engine 仮想マシン(VM)を作成し、Migrate to Containers を使用して VM を Google Kubernetes Engine(GKE)に移行します。
始める前に
Google Cloud コンソールのプロジェクト セレクタ ページで、Google Cloud プロジェクトを選択または作成作成します。
Google Cloud プロジェクトの課金が有効になっていることを確認します。プロジェクトで課金が有効になっているかどうかを確認する
Compute Engine API を有効にします。
GKE API を有効にします。
このガイドのコマンドラインの例を使用するには、次のことを行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
ウェブサーバーを使用して Compute Engine VM を作成する
このセクションでは、「Hello World!」というウェブページを提供する簡単な Compute Engine VM を作成する方法を説明します。このページは、移行完了後のテストで使用します。
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
VM を作成するには、次のコマンドを実行します。
gcloud compute instances create quickstart-instance \ --zone=us-central1-a --machine-type=e2-standard-2 \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a \ --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-instance
HTTP 経由でインスタンスへのリクエストを許可するファイアウォール ルールを作成するには、次のコマンドを実行します。
gcloud compute firewall-rules create default-allow-http \ --direction=INGRESS --priority=1000 --network=default --action=ALLOW \ --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
Google Cloud コンソールで [VM インスタンス] ページに移動します。
VM
quickstart-instance
に接続するには、VM の行を探して [SSH] をクリックします。新しいタブで接続が確立されます。
apache2 パッケージをインストールするには、新しい
quickstart-instance
コマンドのタブで次のコマンドを実行します。sudo apt-get update && sudo apt-get install apache2 -y
Apache をインストールすると、オペレーティング システムにより Apache サーバーが自動的に起動します。
同じタブで、Apache ウェブサーバーのデフォルトのウェブページを新しいページで上書きするには、次のコマンドを実行します。
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
[VM インスタンス] ページに戻り、
quickstart-instance
に表示されている外部 IP アドレスをコピーします。VM の IP アドレスをブラウザのアドレスバーに貼り付けます。
http://
の接頭辞を付けます。これで「Hello World」のページが表示されます。
[VM インスタンス] ページで、
quickstart-instance
の行の左側にあるチェックボックスをオンにします。VM を停止するには、ページの上部にある [停止] をクリックします。
移行を開始する前に VM を停止する必要があります。移行の完了後に、再度起動できます。
処理クラスタを作成する
このセクションでは、Google Cloud で処理クラスタとして使用する GKE クラスタを作成します。
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
処理クラスタとして使用する新しい Kubernetes クラスタを作成するには、次のコマンドを実行します。
gcloud container clusters create migration-processing \ --zone=us-central1-a --machine-type e2-standard-4 \ --image-type ubuntu_containerd --num-nodes 1 \ --enable-stackdriver-kubernetes \ --subnetwork "projects/PROJECT_ID/regions/us-central1/subnetworks/default"
PROJECT_ID は、実際のプロジェクト ID に置き換えます。
クラスタの作成が完了するまで数分待ちます。
Migrate to Containers をインストールする
Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
[処理中のクラスタ] タブをクリックし、[処理クラスタを追加] をクリックします。
[ワークロード OS の種類] リストで [Linux] を選択し、[次へ] をクリックします。
[クラスタを選択] リストから
migration-processing
を選択し、[次へ] をクリックします。[構成] セクションでデフォルト値をそのままにして、[次へ] をクリックします。
[サービス アカウント] セクションで、[サービス アカウントを新規作成] を選択します。
[サービス アカウント名] フィールドに「
quickstart-sa1
」と入力します。[続行]、[デプロイ] の順にクリックします。
処理クラスタの設定が完了するまで数分かかります。
Compute Engine VM を移行する
以降のセクションでは、移行元を Compute Engine VM として指定します。このステップにより、移行元の仕様が移行計画に追加されます。次に、移行の詳細を含む移行計画を作成し、それを使用して VM を移行します。
移行元を指定する
Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
[ソースを追加] をクリックします。
[処理クラスタを選択] リストで [
migration-processing
] を選択し、[次へ] をクリックします。[名前] フィールドに「
quickstart-source
」と入力します。[ソースの種類] は Compute Engine のままにして、[次へ] をクリックします。
[プロジェクト] フィールドに、移行する VM を含むプロジェクトのプロジェクト ID を指定します。
[サービス アカウントを新規作成] を選択して、移行元として Compute Engine を使用できるようにするアカウントを作成します。
[サービス アカウント名] フィールドに「
quickstart-sa2
」と入力します。[続行]、[ソースを追加] の順にクリックします。
移行計画を作成する
Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
[移行を作成] をクリックします。
[移行名] フィールドに「
quickstart-migration
」と入力します。[ソースを選択] リストから
quickstart-source
を選択します。[ワークロード タイプ] リストから [Linux system container] を選択します。
[インスタンス名] フィールドに「
quickstart-instance
」と入力します。[移行を作成] をクリックします。
移行が [移行] テーブルに追加されます。ただし、移行の作成が完了するまでに数分かかることがあります。完了すると、[移行] テーブルの [ステータス] 列が更新されます。
移行したワークロードをデプロイする
移行用の VM の処理の一部としてターゲット コンテナ アーティファクトを生成するには、次の操作を行います。
Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
quickstart-migration
の [次のステップ] 列で、[オプション] - [アーティファクトの生成] を選択します。アーティファクトが生成されると、移行の [ステータス] 列が更新されます。移行が完了したら、「Cloud Shell をアクティブにする」をクリックします。
生成された YAML アーティファクトをダウンロードするには、次のコマンドを実行します。
migctl migration get-artifacts quickstart-migration
このコマンドを実行すると、移行中に生成された次のファイルがダウンロードされます。
- deployment_spec.yaml - ワークロードを構成する YAML ファイル。
- Dockerfile - 移行された VM のイメージのビルドに使用される Dockerfile。
- migration.yaml - 移行計画のコピー。
- blocklist.yaml - 移行計画の設定に基づいて無効にするコンテナ サービスのリスト。
Cloud Shell エディタを開くには、[エディタを開く] をクリックします。
deployment_spec.yaml
ファイルを開き、quickstart-instance
という名前のService
オブジェクトを見つけます。次のように表示されます。apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} ---
上記の
Service
定義の下に、青色でハイライト表示されたService
定義を貼り付けます。これにより、HTTP 経由でウェブサーバーにアクセスできるようにポート 80 を公開します。apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} --- apiVersion: v1 kind: Service metadata: name: hello-service spec: selector: app: quickstart-instance ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer ---
必要に応じて、ファイル内の
Service
定義のインデントを修正します。ファイルを保存します。
[ターミナルを開く] をクリックします。
移行された VM をデプロイするには、次のコマンドを実行します。
skaffold run -d eu.gcr.io/PROJECT_ID
PROJECT_ID は、実際のプロジェクト ID に置き換えます。
移行された VM の外部 IP アドレスを取得するには、次のコマンドを実行します。
kubectl get service hello-service
ウェブサーバーの準備が整うと、追加した
hello-service
の外部 IP アドレスが表示されます。kubectl get service hello-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.241.124 ##.##.###.## 80:32611/TCP 5m4s
移行が成功したかどうかを確認するには、新しいブラウザタブを開き、外部 IP アドレスのウェブページにアクセスします(HTTPS ではなく HTTP を使用してください)。
http://##.##.###.##
画面に「
Hello World!
」というテキストが表示されている場合、VM の移行は成功しています。移行したワークロードにアクセスできない場合は、既知の問題のトラブルシューティングをご覧ください。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。
移行を削除する
- Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
- [移行] タブをクリックして、使用可能な移行を含むテーブルを表示します。
quickstart-migration
で、テーブルの右側にある [ 削除] をクリックし、[移行を削除] を選択します。
移行元を削除する
- Google Cloud コンソールで、[Migrate to Containers] ページに移動します。
- [ソースを管理] をクリックして、使用可能なソースのリストを表示します。
quickstart-source
で、テーブルの右側にある [ 削除] をクリックします。- 表示されたテキストを入力して削除を確認し、もう一度 [削除] をクリックします。
GKE クラスタを削除する
- Google Cloud コンソールで、Google Kubernetes Engine のページに移動します。
- [
migration-processing
] を選択して、[ 削除] をクリックします。 - 確認のメッセージが表示されたら、もう一度 [削除] をクリックします。
サービス アカウントを削除する
- Google Cloud コンソールで [サービス アカウント] ページに移動します。
- サービス アカウントを作成したプロジェクトを選択します。
quickstart-sa1
とquickstart-sa2
を選択し、[ 削除] をクリックします。- 確認のメッセージが表示されたら、もう一度 [削除] をクリックします。
VM を削除する
- Google Cloud コンソールで [VM インスタンス] ページに移動します。
quickstart-instance
という名前をクリックします。- インスタンスの詳細ページの上部にある [ 削除] をクリックします。
次のステップ
- ゲスト検出とデータ収集をバッチ処理する方法を学習する。