SMCを使用すると、サーバーをContainer Registryに移行できます。 SMCを使用して、コンテナ化されたアプリケーションを低コストでContainer Registryに移行できます。 コンテナ化されたアプリケーションは、自動的に管理され、高い俊敏性と低いセキュリティリスクでデプロイされる分散アプリケーションです。 アプリケーションコンテナ化は、リソース使用量を改善し、コンピューティングコストを削減します。 このトピックでは、サーバーをContainer Registryに移行する方法について説明します。

始める前に

  • サーバーにLinuxオペレーティングシステムがインストールされ、使用されます。
  • Container Registryがアクティブ化され、コンテナイメージリポジトリが作成されます。 詳細については、「t1841668.html#topic1686」をご参照ください。
  • 移行用にSMCによって生成される中間インスタンスに対して、Resource Access Management (RAM) ロールが作成されます。 次のパラメーターは、RAMロールの設定に使用されます。 詳細については、「信頼できる Alibaba Cloud サービス用の RAM ロールの作成」をご参照ください。
    • 信頼できるエンティティタイプ: Alibaba Cloudサービスを選択します。
    • ロールの種類: [通常のサービスロール] を選択します。
    • [Elastic Compute Service] を選択します。
  • 中間インスタンスのRAMロールに対してカスタムポリシーが作成されます。 このポリシーは、サーバーをContainer Registryに移行するために必要な最小限の権限を付与します。 次の例は、サンプルポリシーを示しています。 このポリシーはRAMロールにアタッチされます。 詳細については、「カスタマイズポリシーの作成」および「RAM ロールへの権限付与」をご参照ください。
    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken" 、
                    "cr:PushRepository",
                    "cr:PullRepository" 、
                    "cr:CreateRepository"
                ],
                "Resource": "*"
            }
        ],
        "バージョン": "1"
    }
  • サーバーの情報がSMCコンソールにインポートされます。 詳細については、「ステップ1: 移行元の情報をインポートする」をご参照ください。
    重要
    • SMCクライアントV2.3.0以降は、Container Registryへのサーバー移行をサポートします。 これらのSMCクライアントを使用して、ソースサーバーに関する情報をインポートできます。 最新バージョンのSMCクライアントをダウンロードします。
    • 移行中にSMCクライアントが実行されていることを確認します。 データ転送が中断された場合は、クライアントと移行タスクを再起動して移行を再開できます。

このタスクについて

  • Dockerコンテナイメージの詳細については、「t1841663.html#concept_2047796」をご参照ください。
  • 移行中、SMCは中間インスタンスを作成します。 中間インスタンスには少額の料金がかかります。 詳細については、「従量課金」をご参照ください。
  • 移行タスクが [完了] または [終了] 状態になった後、またはタスクが削除されたときに、SMCは中間インスタンスを解放します。

(オプション) 手順1: 動的データディレクトリを除外する

安定した移行を確保するために、大規模データベースのデータディレクトリなどの動的データディレクトリを除外することを推奨します。 その後、移行元サーバーのサービスを停止し、移行タスクを開始できます。 動的データディレクトリを移行から除外する必要がない場合は、この手順をスキップしてください。

動的データディレクトリを除外するには、次の手順を実行します。 移行元サーバーで実行されているサービスを停止する必要はありません。

  1. 移行元サーバーにログインします。
  2. SMCクライアントを設定し、動的データディレクトリを除外します。

ステップ2: 移行タスクを作成して開始する

次の手順を実行して、動的データディレクトリを除外できます。 移行元サーバーで実行されているサービスを停止する必要はありません。

  1. SMCコンソールにログインします。
  2. 左側のナビゲーションウィンドウで、[移行ソース] をクリックします。
  3. データを移行するソースサーバーを見つけます。 [操作] 列の [移行タスクの作成] をクリックします。
  4. [移行タスクの作成] ページで、コンテナーイメージのパラメーターを設定します。
    siteコンテナーイメージを設定するには、次のパラメーターを設定します。その他のパラメーターの詳細については、「Step 2: Create and start a migration task」をご参照ください。
    • ターゲットイメージタイプ: ターゲットイメージのタイプ。 [コンテナーイメージ] を選択します。
    • 名前空間: ターゲットイメージの名前空間。 詳細については、以下のドキュメントをご参照ください:
    • リポジトリ名: ターゲットイメージが格納されているリポジトリの名前。 詳細については、「t1841668.html#topic1686」をご参照ください。
    • Version: ターゲットイメージのバージョン。
    • RAMロール: 中間インスタンスにアタッチされているRAMロール。 詳細については、以下のドキュメントをご参照ください:
    移行タスクは、作成後すぐに開始されます。 次に、移行タスクはFinishedまたはInError状態になります。
    • 移行タスクが [完了] 状態になると、タスクは完了し、コンテナイメージが生成されます。
    • 移行タスクがInError状態になると、タスクは失敗します。 ログを確認して、障害をトラブルシューティングできます。 次に、移行タスクを再起動します。 一般的なエラーと解決策については、「SMC FAQ」をご参照ください。

ステップ3: コンテナイメージを確認する

ソースサーバーをContainer Registryに移行すると、コンテナーイメージが作成されます。 コンテナイメージを検証するには、次の手順を実行します。 NGINXがデプロイされているコンテナイメージを例として使用します。

  1. Container Service for Kubernetes (ACK) コンソールでKubernetesクラスターを作成します。 詳細については、「ACK専用クラスターの作成」をご参照ください。
  2. ACK コンソールにログインします。
  3. 左側のナビゲーションウィンドウで、[クラスター] をクリックして、作成されたKubernetesクラスターを表示します。
  4. [操作] 列で、[アプリケーション] をクリックします。
  5. [デプロイメント] タブで、[イメージから作成] をクリックします。
    次のパラメーターを設定します。 その他のパラメーターと操作については、「イメージを利用したデプロイアプリケーションの作成」をご参照ください。
    1. [基本情報] ステップで、次のパラメーターを設定します。
      • Name: アプリケーションの名前。 値をnginxに設定します。
      • レプリカ: アプリケーションレプリカの数。 値を1に設定します。
      • Type: アプリケーションのタイプ。 値を [デプロイメント] に設定します。
    2. [次へ] をクリックします。
    3. コンテナーステップで、次のパラメーターを設定します。
      • イメージ名: [イメージの選択] をクリックして、移行完了後に生成されるコンテナーイメージを選択します。 コンテナーイメージリポジトリとKubernetesクラスターが同じリージョンにデプロイされている場合、コンテナイメージのVirtual Private Cloud (VPC) エンドポイントを使用してイメージをプルできます。
      • イメージバージョン: [イメージバージョンの選択] をクリックして、移行完了後に生成されるコンテナイメージのバージョンを選択します。
      • Image Pull Secretの設定: このパラメーターは、コンテナーイメージがプライベートイメージの場合に必要です。 プラグインを使用してイメージをプルすることもできます。 この方法は秘密鍵を必要としない。 詳細については、「t1880019.html#task_2456294」をご参照ください。
      • ポート: ポート80を追加します。 ポスト
      • 開始: /sbin/initコマンドを入力します。 cmd
    4. [次へ] をクリックします。
    5. [詳細] ステップで、アプリケーションにアクセスするサービスを作成します。
      必要なパラメーターを設定するときは、次の図の例の値を使用します。 server
  6. [作成] をクリックします。
  7. サービスの作成後、[詳細の表示] をクリックして、アプリケーションのステータスを表示します。
  8. 左側のナビゲーションウィンドウで、[サービス] をクリックします。 [サービス] ページで、サービスの [外部エンドポイント] を表示します。
  9. ブラウザを使用して外部エンドポイントにアクセスできます。
    nginx