このトピックでは、Swarm クラスターの swarm-piggymetrics-cluster を例として、クラスター設定を移行する方法について説明します。 設定の移行プロセスには、Kubernetes クラスターの作成、ノードラベルの移行、Kubernetes クラスターが Virtual Private Cloud (VPC) を介して他の Alibaba Cloud サービスにアクセス可能かどうかの確認、ボリュームの移行、設定項目の移行の手順が含まれます。

始める前に

移行対象の Swarm クラスターは標準化されています。 詳細については、「 Swarm クラスターの標準化」をご参照ください。

このタスクについて

このトピックでは、Swarm クラスターの swarm-piggymetrics-cluster を例として、クラスター設定を移行する方法について説明します。 設定の移行プロセスには、Kubernetes クラスターの作成、ノードラベルの移行、Kubernetes クラスターが VPC を介して他の Alibaba Cloud サービスにアクセス可能かどうかの確認、ボリュームの移行、設定項目の移行の手順が含まれます。

Kubernetes クラスターの作成

既存の Swarm クラスター swarm-piggymetrics-cluster の設定に基づいて Kubernetes クラスターを作成します。 マネージド型 Kubernetes クラスターを作成することを推奨します。 詳細については、「 マネージド Kubernetes クラスターの作成」をご参照ください。 Kubernetes クラスターを作成する際、次のことに注意してください。
  • Swarm クラスター swarm-piggymetrics-cluster が存在するリージョンとゾーンを選択します。 これにより、 VPC などのリージョン間で移行できないリソースを確実に移行できます。
  • Kubernetes クラスターは VPC のみをサポートしています。クラシックネットワークはサポートしていません。
    • Swarm クラスター swarm-piggymetrics-cluster が VPC 内にある場合、同一 VPC にマネージド型 Kubernetes クラスターを作成します。
    • Swarm クラスター swarm-piggymetrics-cluster がクラシックネットワーク内にある場合、Swarm クラスターを VPC に移行する必要があります。 詳細については、「ハイブリッド移行」をご参照ください 。
  • マネージド型 Kubernetes クラスターを作成するとき、[ECS ノードに CloudMonitor エージェントをインストール] を選択します。 これにより、後でトラフィックを Kubernetes クラスターに切り替える際、CloudMonitor コンソールで Elastic Compute Service (ECS) インスタンスのモニタリング情報を表示できるようになります。
  • Swarm クラスター swarm-piggymetrics-cluster で Log Service を使用する場合、[Log Service の有効化] と Swarm クラスターで使用する Log Service プロジェクトを選択します。 これにより、Log Service 設定を個別に移行する必要がなくなります。
  • Swarm クラスター swarm-piggymetrics-cluster で Relational Database Service (RDS) インスタンスを使用する場合、RDS インスタンスを選択して、マネージド型 Kubernetes クラスターのノードを RDS インスタンスのホワイトリストに追加します。 これにより、Kubernetes クラスターが RDS インスタンスに確実にアクセスできるようになります。

ノードラベルの移行

Swarm クラスター swarm-piggymetrics-cluster にユーザータグが設定されており、そのユーザータグを使用してアプリケーションをデプロイするノードを指定する場合、ユーザータグを移行する必要があります。 ユーザータグを移行するには、以下の手順を実行します。

  1. Swarm クラスター内のノードのユーザータグを表示します。
    1. Container Service - Swarm コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。 クラスターのページで対象となるクラスターを見つけ、[操作] 列の [管理] をクリックします。
    2. 左側のナビゲーションウィンドウで、[ユーザータグ] をクリックします。 表示されるページの [ユーザータグ] 列で、 Swarm クラスター swarm-piggymetrics-cluster に設定されているユーザータグを確認します。
  2. 作成したマネージト型 Kubernetes クラスター内の対応するノードに同じタグを追加します。
    1. Container Service - Kubernetes コンソールにログインします 。 左側のナビゲーションウィンドウで、 の順にクリックします。 [ノード] ページの右上隅にある [ラベルの管理] をクリックします。
    2. [ラベルの管理] ページで、対象のノードを選択して、 [ラベルの追加] をクリックします 。 [追加] ダイアログボックスが表示されたら、ラベル名と値を入力し、[OK] をクリックします。

Kubernetes クラスターが VPC を介して他の Alibaba Cloud サービスにアクセス可能かどうかの確認

Swarm クラスター swarm-piggymetrics-cluster がクラシックネットワーク内にある場合、VPC 内に存在するマネージド型 Kubernetes クラスターが、Swarm クラスターで使用される RDS インスタンスと Object Storage Service (OSS) バケットへのアクセスに失敗する場合があります。 Kubernetes クラスターを作成する際、マネージド型 Kubernetes クラスターのノードを RDS インスタンスのホワイトリストに追加しました。 OSS バケットには 2 つのエンドポイントが実装されています。1 つはクラシックネットワーク用、もう 1 つは VPC 用です。 このセクションでは、マネージド型 Kubernetes クラスターがクラスターが存在する VPC を介して、RDS インスタンスと OSS バケットにアクセスできることを確認します。

  1. RDS コンソールにログインします。 インスタンスの ページで、対象の RDS インスタンスをクリックします。 インスタンスの詳細ページの左側のナビゲーションウィンドウで、[データセキュリティ] をクリックします。 [ホワイトリストの設定] タブで、マネージド型 Kubernetes クラスターノードの IP アドレスが RDS インスタンスのホワイトリストに追加されていることを確認します。
  2. 左側のナビゲーションウィンドウで、[データベースの接続] をクリックします。 [インスタンスの接続] タブで、[イントラネットアドレス] パラメーターの値を取得します。これは VPC の RDS インスタンスのエンドポイントです。
  3. ECS コンソールにログインします。次の図に示すように、マネージド型 Kubernetes クラスターのノードとして機能する ECS インスタンスが、RDS インスタンスにアクセスできることを確認します。
    • ECS インスタンスが RDS インスタンスにアクセスできる場合は、次の手順に進みます。
    • ECS インスタンスが RDS インスタンスへのアクセスに失敗した場合、原因を特定して問題を修正します。

      接続障害のトラブルシューティングを行った後、ECS コンソール に再度ログインします。 ECS インスタンスが RDS インスタンスにアクセスできることを確認します。 次の手順に進みます。

  4. OSS コンソールにログインします。 Swarm クラスターで使用されている OSS バケットを見つけ、クラシックネットワークと VPC のエンドポイントを確認します。
Swarm クラスター swarm-piggymetrics-cluster がクラシックネットワーク用のエンドポイントを使用して OSS バケットにアクセスしている場合、VPC 用のエンドポイントを使用するように Swarm クラスターを切り替える必要があります。 このエンドポイントは、ボリュームの移行にも必要です。

ボリュームの移行

ボリューム は、Swarm クラスターと Kubernetes クラスターにクラスターレベルでアタッチされます。 したがって、クラスター設定を移行する際にボリューム設定を移行できます。また、アプリケーション設定を移行する際にボリュームの参照情報を変更できます。 Swarm クラスターのボリュームは、Kubernetes クラスターの永続ボリューム (PV) と永続ボリュームクレーム (PVC) に対応しています。

Swarm は、Apsara File Storage NAS、Alibaba Cloud ディスク、および OSS の 3 種類のボリュームをサポートしています。 これらのボリュームは [ボリュームモード] で使用するか、PV または PVC の作成により使用できます。 詳細については、 「概要」をご参照ください。 このトピックでは、PV または PVC の作成により、ボリュームを使用することを前提としています。

  1. Container Service - Swarm コンソールにログインします。 左側のナビゲーションウィンドウで、[ボリューム] をクリックします。 [データボリュームリスト] ページで、クラスター swarm-piggymetrics-cluster を選択し、NAS、ディスク、OSS タイプのボリュームを確認します。
  2. 作成したマネージド型 Kubernetesクラスターで、3 種類のボリュームにそれぞれ PV と PVC を作成します。 詳細については、以下のトピックをご参照ください。
ボリュームの移行に関する注意事項
  • ディスクは、Alibaba Cloud が提供する非共有ストレージであるため、一度に 1 つのポッドにしかアタッチできません。 Swarm クラスターと Kubernetes クラスターが同時にデータをディスクに書き込むと、エラーが返されます。 したがって、Swarm クラスターから Kubernetes クラスターにディスクを移行するには、サービスを停止する必要があります。 移行前に Swarm クラスターを切り替えて NAS や OSS ボリュームを使用するか、ピーク時間外にサービスを停止してディスクを移行します。 Kubernetes クラスターにディスクをアタッチする前に、Swarm クラスターからディスクをデタッチする必要があります。 詳細については、「クラウドディスクのデタッチ」と「データボリュームの表示と削除」をご参照ください。
  • Kubernetes クラスターでは、PV または PVC の名前に大文字とアンダースコア (_) を使用できません。 Swarm クラスターのボリューム名に大文字やアンダースコア (_) が含まれる場合、次の方法で名前を変換します。
    • 大文字を小文字に変更します。
    • アンダースコア (_) をハイフン (-) に変更します。
  • Kubernetes は VPC のみをサポートしているため、OSS タイプの PV を作成するとき、[エンドポイント][VPC エンドポイント] に設定します。
  • PVC を作成する場合、対応するボリュームの名前を PVC 名として使用しますが、大文字を小文字に、アンダースコア (_) をハイフン (-) に変更します。 Kompose を使用して Swarm Compose ファイルを Kubernetes リソースファイルに変換する場合、Kompose では同じ方法で PVC 名が指定されます。

設定項目の移行

Swarm クラスター向けの Container Service では、設定ファイルを作成して設定項目を設定すると、複数のコンテナーの環境変数を統一して管理できます。 アプリケーションをデプロイするときに、設定ファイルを使用して、Swarm Compose ファイル内のドル記号 ($) で始まる変数を実際の値に置き換えることができます。

この機能は、Container Service - Swarm コンソールに搭載されている拡張機能です。 標準 Kubernetes には、この機能に完全に一致する機能が搭載されていません。 Swarm クラスターの設定ファイルは、Kubernetes クラスターの ConfigMap とは異なります。 したがって、Swarm クラスター内の設定項目は自動的に移行できません。 Swarm Compose ファイルの変数を実際の値に手動で置き換える必要があります。