サービス中断なしで、自己管理型 Kubernetes クラスターから Container Service for Kubernetes (ACK) クラスターへワークロードを移行します。
移行方式
本移行で使用するツール
開始前に、これらのツールがご利用の環境と互換性があるか確認してください。
| ツール | 目的 |
|---|---|
| Data Transmission Service (DTS) | 完全同期、増分同期、または双方向同期を使用して MySQL データを移行します。 |
| ossimport | オンプレミスサーバーまたはサードパーティのクラウドストレージから OSS へデータを一括移行します。 |
| image-syncer | コンテナイメージを Container Registry へ移行します。 |
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ACK クラスターおよび関連リソースを作成する権限を持つ Alibaba Cloud アカウント
自己管理型 Kubernetes クラスターおよびそのアプリケーション構成へのアクセス権限
(任意)自己管理型 Kubernetes クラスター内のデータおよび構成のバックアップ
操作手順
ステップ 1:ACK クラスターの作成と設定
O&M エンジニアが、開発者がアプリケーションの移行を開始する前に ACK クラスターを作成・設定します。
ACK Pro マネージドクラスター を使用します。そのコントロールプレーンは ACK によってフルマネージドされるため、ワーカーノードのみの作成・管理が必要です。課金対象はワーカーノードのリソースのみとなります。
クラスター作成の詳細な手順については、「ACK マネージドクラスターの作成」をご参照ください。
クラスター作成時に、以下の設定を構成します。
| 設定項目 | 説明 |
|---|---|
| オペレーティングシステム | CentOS 7.6 または Alibaba Cloud Linux 2.1903(デフォルト)を選択します。カスタムカーネルを使用する場合は、「カスタムイメージを使用した ACK クラスターの作成」をご参照ください。 |
| VPC | クラスター用の仮想プライベートクラウド(VPC)および vSwitch を選択します。 |
| SNAT | VPC に対して SNAT エントリを設定します。 |
| パブリックアクセス | 弾力的 IP アドレス(EIP)を使用して API サーバーを公開します。 |
| CloudMonitor エージェント | クラスター内の Elastic Compute Service (ECS) インスタンスに CloudMonitor エージェントをインストールします。 |
| Simple Log Service | クラスター内に Simple Log Service エージェントをインストール・設定します。 |
ステップ 2:データの移行
データ移行は、データベース、オブジェクトストレージ、コンテナイメージの 3 つの領域を対象とします。
データベースの移行
ApsaraDB RDS インスタンスを作成します。
指定された IP アドレスからのみアクセスを許可するホワイトリストを設定します。
Alibaba Cloud DNS PrivateZone を設定し、データベースのドメイン名を ApsaraDB RDS インスタンスの IP アドレスに解決できるようにします。これにより、アプリケーション内のデータベース接続文字列を更新する必要がなくなります。
Data Transmission Service (DTS) を使用して MySQL データを移行します。DTS では、完全同期、増分同期、および双方向同期がサポートされています。詳細については、「自己管理 MySQL データベースから ApsaraDB RDS for MySQL インスタンスへのデータ移行」をご参照ください。
オブジェクトストレージデータの移行
Object Storage Service (OSS) を有効化します。
OSS バケットを作成します。
ossimport ツールを使用して、データを OSS へ移行します。ossimport は、オンプレミスサーバーや Amazon S3、Microsoft Azure、Tencent Cloud Object Storage などのサードパーティのクラウドストレージサービスからのバッチ移行をサポートしています。詳細については、「概要」をご参照ください。
コンテナイメージの移行
Container Registry リポジトリを作成します。
リポジトリへのアクセスに必要な認証情報を設定します。
image-syncer を使用してコンテナイメージを移行します。詳細については、「image-syncer を使用したコンテナイメージの移行」をご参照ください。
ステップ 3:アプリケーション構成の移行
O&M エンジニアまたは開発者が、クラスターおよびアプリケーションの構成を ACK クラスターへ移行します。
詳細については、「外部 Kubernetes クラスターから ACK クラスターへのアプリケーション移行」をご参照ください。
ステップ 4:リグレッションテストの実施
テストエンジニアが、オンライントラフィックを中断することなく ACK クラスターに対してリグレッションテストを実行します。
リグレッションテスト用のドメイン名を設定します。
アプリケーションをテストします。
ログ出力されたアプリケーションイベントを確認します。
アプリケーション監視メトリックを確認します。
ステップ 5:トラフィックを ACK へ切り替え
O&M エンジニアが、Domain Name System(DNS)の設定を更新し、トラフィックを ACK クラスターへリダイレクトします。
トラフィックの切り替えを行うために DNS 設定を変更します。
クライアントの設定またはコードを更新し、ACK クラスターを指すようにします。
ステップ 6:自己管理型 Kubernetes クラスターの廃止
ACK クラスターが正常にトラフィックを処理していることを確認した後、O&M エンジニアが自己管理型クラスターを廃止します。
ACK クラスターが期待通りにトラフィックの受信および送信を行えることを検証します。
自己管理型 Kubernetes クラスターを廃止します。
アプリケーション移行中に作成した OSS バケットに保存されたバックアップファイルを削除します。