本ドキュメントでは、アプリケーションを中断することなく、Swarm クラスタから Kubernetes クラスターにアプリケーションを移行するためのソリューションについて説明します。 このソリューションには、さまざまな担当者が関わる 7 つのステップが含まれています。

手順

  1. 目的とする Swarm クラスターを標準化します。
    このステップで説明されている操作は、O&M担当者が実行しなければなりません。
    1. 目的とする Swarm クラスター用の SLB インスタンスを設定してから、クライアントを使用してターゲット Swarm クラスター上で実行されるアプリケーションにアクセスします。
      この手順により、カナリアデプロイメントを使用して、Swarm クラスター宛てのトラフィックをターゲット Kubernetes クラスターに送信できます。
      • SLB インスタンスを使用してアプリケーションにアクセスすると、トラフィックを確認したり、例外が発生したときに移行されたアプリケーションワークロードをロールバックできます。
      • 他の方法でアプリケーションにアクセスした場合、リリース後 48 時間以内のアプリケーションの新機能はリアルタイムでは有効になりません。
    2. Swarm クラスターで使用される ECS インスタンスを監視するために、CloudMonitor を目的とするターゲット Swarm クラスターにデプロイします。
  2. Kubernetes クラスターの作成および設定を行います。
    このステップで説明されている操作は、O&M担当者が実行しなければなりません。
    1. Kubernetes クラスターを作成します。
      マネージド Kubernetes クラスターの作成を推奨します。
    2. Swam クラスターで使用される ECS インスタンスとネットワークを移行します。
    3. ノードタグを移行します。
    4. Kubernetes クラスタ用に設定した VPC が信頼できる接続を提供できることを確認してください。
    5. ボリュームを移行します。
    6. ConfigMaps を移行します。
  3. Kompose を使用して、Swarm クラスタから Kubernetes クラスタにアプリケーションを移行します。
    この手順で説明されている操作は開発者が実行しなければなりません。
    1. Kompose と kubectl をインストールして、移行タスクを実装するための環境を準備します。
    2. アプリケーションの Swarm オーケストレーションファイルを変更します。
    3. Warm オーケストレーションファイルを Kubernetes リソースファイルに変換します。
    4. Kubernetes リソースファイルをデプロイします。
    5. Swarm タグを手動で移行します。
    6. Kubernetes クラスターに移行したアプリケーションをデバッグします。
    7. アプリケーションのログ設定を移行します。
  4. 移行したアプリケーションの回帰テストを実装します。
    この手順で説明されている操作は、テスト担当者が実行しなければなりません。
    1. アプリケーションのテスト用ドメイン名を設定します。
    2. アプリケーションが提供するサービスをテストします。
    3. アプリケーションログの収集が可能であることを確認してください。
    4. Alibaba Cloud の製品の監視によりアプリケーションの監視が可能であることを確認します。
  5. カナリア配置方法を使用して、Swarm クラスタ宛てのトラフィックを Kubernetes クラスタに転送します。
    このステップで説明されている操作は、O&M担当者が実行しなければなりません。
    1. Kubernetes クラスタに NodePort タイプのサービスを作成します。
    2. Kubernetes クラスター宛てのトラフィックを Swarm クラスタに戻します。
      Kubernetes クラスターが正常に機能しない場合は、この手順を実行する必要があります。
  6. Kubernetes クラスターにトラフィックを転送します。
    このステップで説明されている操作は、O&M担当者が実行する必要があります。
    このタスクを完了するには、以下の操作のいずれかを実行してください。
    • DNS 設定を変更します。
    • クライアントのコードまたは設定をアップグレードしてください。
  7. Swarm クラスタを削除してそのリソースを解放します。
    このステップで説明されている操作は、O&M担当者が実行しなければなりません。
    1. Swarm クラスター宛てのトラフィックがないことを確認します。
    2. Swarm クラスターを削除してそのリソースを解放します。