すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:異なるリージョンのクラスター間でアプリケーションを移行する

最終更新日:Dec 14, 2024

バックアップセンター機能を使用すると、さまざまなリージョンのクラスター間でアプリケーションをバックアップおよび復元できます。 これにより、クロスリージョンバックアップとディザスタリカバリが可能になります。

前提条件

  • ボリュームが復元されるクラスターが作成されます。 Elastic Compute Service (ECS) インスタンスのスナップショットを使用してディスクデータを復元できるようにするには、Kubernetesバージョンのクラスターを1.18以降に更新することを推奨します。 詳細については、「ACK管理クラスターの作成」「ACK専用クラスターの作成」、または「クラスター登録プロキシの作成とデータセンターにデプロイされたKubernetesクラスターの登録」をご参照ください。

    重要
    • 復元クラスターでは、Container Storage Interface (CSI) プラグインを使用する必要があります。 FlexVolumeを使用するクラスター、またはcsi-compatible-controllerとFlexVolumeを使用するクラスターでは、アプリケーションの復元はサポートされません。

    • バックアップセンターは、アプリケーションのバックアップと復元に使用されます。 復元タスクを実行する前に、復元クラスターにシステムコンポーネントをインストールして構成する必要があります。 例:

      • aliyun-acr-credential-helper: 復元クラスターにアクセス許可を付与し、acr-configurationを設定する必要があります。

      • alb-ingress-controller: ALBConfigを設定する必要があります。

  • バックアップコンポーネントがインストールされ、ボリュームがバックアップされたクラスターとボリュームが復元されたクラスターに権限が付与されます。 詳細については、「migrate-controllerのインストールと権限の付与」をご参照ください。

  • ECSスナップショットが有効化されています

    ECSスナップショットサービスの有効化には料金はかかりません。 スナップショットを作成すると、スナップショットのサイズと保持期間に基づいてスナップショットの料金が請求されます。 詳細については、「スナップショット」をご参照ください。

使用上の注意

  • クロスリージョン移行では、アプリケーションのバックアップがサポートされます。 クロスリージョン移行を使用して、Alibaba Cloudディスクを使用するボリュームをバックアップすることもできます。

    ECS (Elastic Compute Service) ノードで構成されるセルフマネージドKubernetesクラスターに接続するACK専用クラスターまたは登録済みクラスターを使用する場合、異なるリージョンのクラスター間でアプリケーションを移行する前に、クラスターにECSスナップショット権限が付与されているかどうかを確認する必要があります。 詳細については、「migrate-controllerのインストールと権限の付与」をご参照ください。

  • バックアップセンターがアプリケーションをバックアップするとき、削除されているリソースはバックアップされません。

準備

このトピックの例では、異なるリージョンのクラスター間でアプリケーションをバックアップおよび復元する方法を示します。 この例では、Cluster_BJという名前のACK Proクラスターが中国 (北京) リージョンに作成され、アプリケーションをバックアップするためのソースクラスターとして使用されます。 Cluster_SZという名前のACK Proクラスターが中国 (深セン) リージョンに作成され、アプリケーションを復元するためのターゲットクラスターとして使用されます。 バックアップボールトは、中国 (北京) リージョンのObject Storage Service (OSS) バケットに関連付けられています。

  1. 中国 (北京) リージョンにcnfs-OSS-*** という名前のossバケットを作成します。

    要件を満たすOSSバケットがリージョンで既に作成されている場合は、この手順をスキップします。

  2. 次のコマンドを実行して、Cluster_BJクラスターの既定の名前空間にステートフルNGINXアプリケーションを作成します。

    ステートフルNginxアプリケーションのYAMLファイル

    cat << EOF | kubectl apply -f -
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      replicas: 1
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - name: nginx
              image: nginx:1.14.2
              ports:
                - containerPort: 80
                  name: web
              volumeMounts:
                - name: www
                  mountPath: /usr/share/nginx/html
      volumeClaimTemplates:
        - metadata:
            name: www
            labels:
              app: nginx
          spec:
            accessModes: [ "ReadWriteOnce" ]
            storageClassName: "alicloud-disk-topology-alltype"
            resources:
              requests:
                storage: 20Gi
    EOF

ステップ1: バックアップコンテナーの作成

説明
  • 各クラスターのバックアップボールトと関連するOSSバケット間のネットワークアクセスモードが自動的に設定されます。 バックアップファイルのアップロードとダウンロードの速度は、ネットワークアクセスモードによって異なります。

    • クラスターとOSSバケットが同じリージョンに作成されている場合、プライベート接続が使用されます。

    • クラスターとOSSバケットが異なるリージョンで作成されている場合、インターネット接続が使用されます。 OSSのパブリックエンドポイントに到達するには、クラスターがインターネットにアクセスできることを確認する必要があります。 詳細については、「既存のACKクラスターによるインターネットへのアクセスの有効化」をご参照ください。

  • 既存のバックアップボールトのみ削除できます。 既存のバックアップコンテナーは更新できません。 削除されたバックアップコンテナーと同じ名前のバックアップコンテナーを作成した場合、作成したバックアップコンテナーは、アプリケーションバックアップ機能を使用しているクラスターでは使用できません。

ACKクラスターでアプリケーションをバックアップすると、バックアップファイルはOSSバケットに保存されます。 バックアップ計画を作成するときに使用できるバックアップコンテナーがない場合は、手順1の操作を実行する必要があります。 バックアップコンテナーの作成方法の詳細については、「バックアップコンテナーの作成」をご参照ください。

手順2: Cluster_BJクラスターでのバックアップ計画の作成

バックアップ計画の作成方法の詳細については、「バックアップ計画の作成または即時バックアップ」をご参照ください。

重要

異なるリージョンのクラスター間で、ボリュームを使用しないアプリケーションまたはAlibaba Cloudディスクボリュームを使用するアプリケーションのみを移行できます。 クロスリージョン復元の失敗を回避するために、他のタイプのボリュームを使用するステートフルアプリケーションを移行するときは、ボリュームバックアップを有効にしないでください。

手順3: アプリケーションをCluster_SZクラスターに復元する

アプリケーションの復元方法の詳細については、「手順3: アプリケーションとボリュームの復元」をご参照ください。

ステップ4: NGINXアプリケーションが移行されているかどうかを確認する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. Cluster_SZクラスター管理ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. NGINXアプリケーションの [操作] 列の [詳細] をクリックします。 次に、[ポッド] タブをクリックします。

    ポッドのステータスが [実行中] の場合、NGINXアプリケーションは移行されます。

関連ドキュメント