このトピックでは、本番トラフィックの一部を Kubernetes クラスターにルーティングし、クラスターの機能を検証する方法について説明します。 これにより、回帰テストに含まれていない機能を検証できます。

前提条件

回帰テストが完了していること。 詳細については、「回帰テスト」をご参照ください。

トラフィックを Kubernetes サービスへルーティングする

次のいずれかの方法を使用して、トラフィックを Kubernetes サービスにルーティングします。
  • クライアントバージョンをアップグレードするか、DNS レコードを変更して、Kubernetes クラスターに接続された SLB インスタンスのエンドポイントにトラフィックを転送します。
    • この方法は、トラフィックをリダイレクトするための設定が複雑になります。

      クライアントバージョンをアップグレードするか、DNS 設定を変更する必要があります。

    • また、ロールバックのコストが高くなります。
      • Kubernetes クラスターで問題が見つかった場合、クライアントバージョンをアップグレードするか、DNS 設定を再度変更して、トラフィックを Swarm クラスターにルーティングし直す必要があります。
      • クライアントバージョンのアップグレードや DNS キャッシュの更新には時間がかかる場合があり、ワークロードのパフォーマンスに悪影響を及ぼします。
  • Kubernetes サービスを Swarm クラスターに接続された SLB インスタンスのバックエンドに追加し、重みを設定して、サービスにルーティングされるトラフィックの割合を指定します。
    • この方法は、トラフィックをリダイレクトするための設定が簡単です。
      • Server Load Balancer コンソールで Swarm クラスターに接続された SLB インスタンスのみを設定する必要があります。
      • 重みを設定して、さまざまなサービスにルーティングされるトラフィックの割合を指定することができます。
    • また、ロールバックのコストも高くなりません。
      • Server Load Balancer コンソールで Swarm クラスターに接続された SLB インスタンスのみを設定する必要があります。
      • 新しい設定はすぐに有効になります。
  1. Kubernetes クラスターで NodePort サービスを作成する.
  2. NodePort サービスの動作を確認する.
  3. Swarm クラスターに接続された SLB インスタンスの設定.

ロールバックの方法

本番トラフィックが Kubernetes サービスにルーティングされた後に問題が発生された際、ロールバックするように VServer グループの設定を変更することができます。 サービスをホストする ECS インスタンスの重みを 0 に設定するか、または、ECS インスタンスを削除します。

  1. Server Load Balancer コンソール にログインします。 [Server Load Balancer] ページで、ターゲット SLB インスタンスをクリックします。
  2. 表示される詳細ページで、[VServer グループ] タブをクリックします。 対象の VServer グループを選択して、[操作] 列の [編集] をクリックします。
  3. 表示される [VServer グループの編集] ページで、対象の ECS インスタンスを選択し、[操作] 列の [削除] をクリックします。 [OK] をクリックします。

まとめ

VServer グループを設定して本番トラフィックの一部を Kubernetes クラスターにデプロイされた NodePort サービスにルーティングし、サービスの機能を検証することができます。

クライアントバージョンのアップグレードまたは DNS レコードの更新によるトラフィックリダイレクションと比較して、この方法では SLB 設定を変更するだけで済み、遅延なく有効になり、異なるサービスに送信されるトラフィックの割合を指定することができます。 これにより、ロールバックのコストが削減され、サービスが中断するリスクを最小限に抑えることができます。