このガイドでは、Linux マシンの IDE で Cloud Code 拡張機能を使用して、既存のアプリケーションを GKE コンテナにリプラットフォームする方法について説明します。
このガイドは、VS Code の実践的な知識があり、 Google Cloudを使い慣れていて、アプリケーション コンポーネントを実行する VM を持っている Linux マシンのデベロッパーを対象としています。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Google Kubernetes Engine API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- 
    
    
      In the Google Cloud console, on the project selector page, select or create a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Google Kubernetes Engine API. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
- Cloud Code 拡張機能をインストールします(まだインストールしていない場合)。
- GKE クラスタを作成して構成します。
- 実行する移行の種類を把握しておきます。サポートされているワークロードの詳細については、互換性のある OS、ワークロード、Kubernetes バージョンを確認するをご覧ください。
- モダナイゼーションのためにソースマシンとローカルマシンを準備します。Cloud Code では、Linux のモダナイゼーションのみがサポートされています。
- IDE のアクティビティ バーで - [Cloud Code] をクリックし、[Replatform Apps] エクスプローラを展開します。 
- Cloud Code で Migrate to Containers を初めて使用する場合は、[ツールのインストール] をクリックして、 - mcdcCLI およびその他の Migrate to Containers ツールをローカルマシンにインストールする必要があります。それ以外の場合は、次のステップに進みます。
- [ソースを編集] をクリックします。空の - mcdc-sources.jsonファイルが開きます。次の形式でソースを追加します。- [ { "title": "SOURCE_NAME", "host": "HOSTNAME", "user": "USER", "identityFile":"IDENTITY-FILE-PATH" } ]
- ソースが [Replatform Apps] エクスプローラに表示されるようにするには、[Replatform Apps] エクスプローラの上にポインタを置き、表示されるキャッシュに保存された [ソースの再読み込み] ボタンをクリックします。 
- [Replatform Apps] エクスプローラで、再プラットフォーム化するソースを右クリックして [再プラットフォーム化] をクリックします。 
- メニューに表示されるオプションのリストから、再プラットフォーム化の工程を選択します。 
- アプリケーションの再プラットフォーム化を行う新しいワークスペース ディレクトリを選択し、[OK] をクリックして、[再プラットフォーム化のワークスペースの作成] をクリックします。 
- 移行タイプの移行パラメータを選択します。 
- 省略可: WebSphere 移行タイプを選択し、バイナリ スキャナを使用する場合は、 - binaryAppScanner.jarファイルを選択します。- ワークスペースの生成には数秒かかります。これにより、IDE の新しいウィンドウで新しいワークスペース ディレクトリが開きます。 
- 省略可: - mcdcCLI は、コピーのサイズを減らすためにフィルタを適用しますが、- filters.txtファイルを変更してコピーのサイズをさらに小さくできます。コピーのサイズを小さくする方法については、コピーするファイル システムのサイズを小さくするをご覧ください。
- Ctrl+Shift+P を押してコマンド パレットを開きます。 
- [タスク: タスクを実行] を検索して選択し、[m2c: コピー] を選択します。ファイルのコピーには数分かかることがあります。 
- Ctrl+Shift+P を押してコマンド パレットを開きます。 
- [タスク: タスクを実行] を検索して選択し、[m2c: 分析] を選択します。 - 分析タスクが失敗した場合は、 - analyze-args.iniファイルを使用して移行パラメータを変更する必要があります。このファイルには、パラメータごとに 1 行と、パラメータに関するドキュメントが含まれています。- 分析が成功すると、Cloud Code は - migration-planというディレクトリを作成します。このディレクトリには、- config.yamlファイル形式の分析結果が含まれています。このファイルを編集して、アーティファクトの生成方法を変更できます。- config.yamlファイルの構造は、移行タイプによって異なります。サポートされている移行タイプの詳細については、次のページをご覧ください。
- Ctrl+Shift+P を押してコマンド パレットを開きます。 
- [タスク: タスクを実行] を検索して選択し、[m2c: 生成] を選択します。これにより、 - srcディレクトリにアーティファクトが生成されます。これには、コンテナ イメージのビルドとデプロイに使用される- skaffold.yamlファイルが含まれています。移行タイプごとに異なるアーティファクトが生成されますが、通常、すべての移行タイプで 1 つ以上の Dockerfile と、- skaffold.yamlが参照する GKE デプロイ仕様が作成されます。- アーティファクトの生成が完了すると、アプリケーションの再プラットフォーム化が完了します。 
- 省略可: 移行プランを変更する場合は、 - config.yamlファイルを編集して、m2c: 生成タスクを再実行します。- それ以外の場合は、再プラットフォーム化の結果に問題がなければ、GKE コンテナでアプリケーションを実行するに進みます。 
- Cloud Code のステータスバーで、アクティブなプロジェクト名をクリックします。  
- 表示されたクイック選択メニューで、[Kubernetes 上で実行する] を選択します。 
- 現在のクラスタ コンテキストを使用するか、別のクラスタ コンテキストに切り替えるかを確認します。 
- プロンプトが表示されたら、イメージの push 先となるイメージ レジストリを選択します。 - gcr.io/PROJECT_IDを使用して新しいイメージ レジストリを作成する場合は、イメージ レジストリがクラスタと同じプロジェクト内にあることを確認してください。- 実行中のアプリケーションの進捗状況を追跡できる出力ウィンドウが表示されます。また、ターミナル出力に実行中の Pod から取得したログのライブ ストリームも表示されます。 
- アプリケーションが Kubernetes で実行されると、出力ウィンドウに IP アドレスが表示されます。このリンクされた IP アドレスを使用してアプリケーションにアクセスするには、Ctrl キーを押しながらアドレスをクリックします。 
- [Cloud Code] をクリックし、[Kubernetes] エクスプローラを展開します。 
- ポインタをクラスタ名に合わせて、open_in_new [ Google Cloud コンソールで開く] をクリックします。
- [削除] をクリックし、[削除] をクリックします。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- コマンド パレット(Ctrl+Shift+P)を開きます。
- [タスク: タスクを実行] を検索して選択し、[m2c: クリーンアップ] を選択します。
再プラットフォーム化のソースを追加する
このセクションでは、Migration Center のディスカバリー クライアント CLI(mcdc)とその他の Migrate to Containers ツールをローカルマシンにインストールしていない場合はインストールし、次の手順で再プラットフォームのソースを追加します。
省略可: 適合性評価を生成する
アプリケーションをコンテナに再プラットフォーム化する前に、ソースの適合性評価を生成することをおすすめします。これにより、ソースがコンテナに再プラットフォーム化が可能かどうか通知されます。
ソースの適合性評価を生成するには、ソースを右クリックして [ソースを評価] を選択します。これにより、IDE でターミナルが開き、ソースの評価のログが表示されます。
評価が完了すると、mcdc は IDE に適合性評価レポートを生成します。
ソースが「良好」であると報告された場合は、アプリケーションを再プラットフォーム化する準備が整っています。
アプリケーションの再プラットフォーム化
Cloud Code では、再プラットフォーム化ごとに専用のワークスペースが作成され、再プラットフォーム化を自動化するため、そのワークスペースでコピー、分析、および生成のタスクが実行されます。[コピー] タスクと [分析] タスクを最初に実行せずに [生成] タスクを実行すると、アーティファクトを生成する前に、これらのタスクが自動的に実行されます。
以下の各セクションでは、これらのタスクをそれぞれ実行し、Cloud Code を使用してアプリケーションをコンテナにリプラットフォームする手順について説明します。
移行のライフサイクルの詳細については、Migrate to Containers CLI のアーキテクチャをご覧ください。
新しい再プラットフォーム化のワークスペースを作成する
新しい再プラットフォーム化のワークスペースを作成する前に、移行タイプにより、どの移行パラメータを選択するかを知っておく必要があります。移行タイプごとのパラメータの詳細については、移行計画を作成するをご覧ください。
IDE でアーティファクトを使用して、新しい再プラットフォーム化のワークスペースを作成するには、次の手順に従います。
VM からワークスペースにファイルをコピーする
VM から IDE のワークスペースにファイルをコピーする手順は次のとおりです。
VM ファイル システムを分析して移行計画を生成する
VM のファイル システムを分析して移行計画を生成する手順は次のとおりです。
アーティファクトの生成
アーティファクトを生成するには、IDE で [Generate] タスクを実行する必要があります。前のセクションの [コピー] タスクと [分析] タスクをまだ実行していない場合は、アーティファクトを生成する前に、生成タスクによって両方が自動的に実行されます。
アーティファクトを生成する手順は次のとおりです。
GKE コンテナでアプリケーションを実行する
このセクションでは、再プラットフォーム化されたアプリケーションを GKE コンテナで実行し、実行中のアプリケーションのログを表示して、リソースをクリーンアップします。
まだ GKE クラスタを作成して構成していない場合は、Cloud Code for VS Code で GKE クラスタを作成して構成するの手順に従ってください。
GKE アプリケーションのデバッグの詳細については、Cloud Code for VS Code を使用して Kubernetes アプリケーションをデバッグするをご覧ください。
アプリケーションを実行して表示する
設定がすべて完了したら、アプリケーションを実行して、公開できます。Cloud Code がファイル システムの変更を監視するため、リアルタイムでアプリを編集して再実行できます。
アプリケーションを実行するには、次の手順に沿って操作します。
デバッグのセッションを開始すると、[Development sessions] ペインに構造化ロギングビューが表示されます。タスクが開始されると、タスクが回転する半円の progress_activity とともに表示されます。
タスクが成功すると、手順の横にチェックマーク check_circle が表示されます。
手順の詳細を表示するには、[開発セッション] ペインで手順をクリックします。[出力] ペインに、ロギング出力の手順が表示されます。
クリーンアップ
アプリケーションを中止すると、実行中にデプロイされたすべての Kubernetes リソースは自動で削除されます。
このクイックスタートで使用した他のリソースについてアカウントに課金されないようにするには、プロジェクトを再利用する場合、プロジェクトを削除するか、作成したクラスタを削除してください。
クラスタを削除するには:
プロジェクト(およびクラスタを含む関連リソース)を削除するには、次のようにします。
プラットフォームの移行プロセス中に作成されたローカルファイルをすべて削除するには: