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

Enterprise Distributed Application Service:Kubernetes クラスター内のアプリケーションのカナリアリリースを実装するために EDAS コンソールを使用する

最終更新日:Mar 21, 2025

Kubernetes クラスターにデプロイされている Spring Cloud または Dubbo マイクロサービスアプリケーションの場合、カナリアリリースを実装できます。カナリアリリースを使用すると、少数のインスタンスで新しいアプリケーションバージョンを検証できます。検証が成功した場合、すべてのインスタンスのアプリケーションを新しいバージョンに更新できます。これにより、更新が安全になります。このトピックでは、EDAS コンソールを使用して Kubernetes クラスター内のアプリケーションのカナリアリリースを実装する方法について説明します。

制限事項

  • High-Speed Service Framework(HSF)アプリケーション: カナリアリリースはサポートされていません。

  • Dubbo アプリケーション: 制限なしで Dubbo アプリケーションのカナリアリリースを実装できます。

  • Spring Cloud アプリケーション: Deployment.Metadata.Name または Deployment.Metadata.Uid を使用してアプリケーションの一部の機能を設定する場合は、アプリケーションのカナリアリリースを実装しないでください。そうしないと、カナリアリリース後にアプリケーションのネイティブ機能が異常になる可能性があります。

  • イングレスアプリケーション: アプリケーションがイングレスアプリケーションで、サーバーロードバランサー(SLB)インスタンスを使用してトラフィックをイングレスアプリケーションに直接転送する場合、SLB トラフィック転送ポリシーはカナリアリリースポリシーに従いません。

    説明

    それでもイングレスアプリケーションにカナリアリリース機能を使用する場合は、クライアントアプリケーションと複数のレプリカを持つサーバーアプリケーションを作成できます。次に、サーバーアプリケーションのカナリアリリースを実装し、SLB インスタンスをクライアントアプリケーションに関連付けて、SLB を使用したサービスアクセスを許可できます。

手順

  1. EDAS [コンソール] にログオンします。

  2. 左側のナビゲーションペインで、アプリケーション管理 > アプリケーション を選択します。トップナビゲーションバーで、リージョンを選択します。[アプリケーション] ページの上部にある [マイクロサービス名前空間] ドロップダウンリストから、マイクロサービス名前空間を選択します。

  3. アプリケーション ページで、Kubernetes クラスタークラスタタイプ ドロップダウンリストから アプリケーション を選択します。次に、カナリアリリースを実装する の名前をクリックします。

  4. アプリケーション概要 ページの右上隅にある デプロイ > デプロイ を選択します。デプロイモードの設定 ページで、デプロイの開始カナリアリリース(段階的) セクションの右上隅にある をクリックします。

  5. カナリアリリース(段階的) ページで、ビジネス要件に基づいて、アプリケーションの新しいバージョンのデプロイ方法、リリースポリシー、およびカナリアリリーシングルールを設定します。次に、OK をクリックします。

    1. デプロイ方法を設定します。

      パラメーター

      説明

      シナリオ

      アプリケーションランタイム環境

      値は、以前のデプロイで使用された値と同じである必要があります。有効な値:

      • JAR パッケージ: アプリケーションランタイム環境は、デフォルト環境 です。アプリケーションランタイム環境のタイプを変更することはできません。

      • WAR パッケージ: アプリケーションランタイム環境は Apache Tomcat です。アプリケーションランタイム環境のタイプを変更することはできません。ただし、ビジネス要件に基づいて Apache Tomcat のバージョンを変更することはできます。

      JAR パッケージまたは WAR パッケージを使用してデプロイされたアプリケーションに適しています

      Java 環境

      ビジネス要件に基づいて、ドロップダウンリストから JDK バージョンを選択します。

      JAR パッケージまたは WAR パッケージを使用してデプロイされたアプリケーションに適しています

      ファイルアップロード方法

      デプロイパッケージのタイプは、以前のデプロイで使用されたタイプと同じである必要があります。WAR パッケージまたは JAR パッケージを使用できます。

      JAR または WAR パッケージをアップロードできます。JAR または WAR パッケージアドレスを指定することもできます。

      • JAR パッケージのアップロード または WAR パッケージのアップロード: ダウンロードした JAR または WAR パッケージを選択します。

      • JAR パッケージアドレス または WAR パッケージアドレス: デモパッケージのアドレスを入力します。

      JAR パッケージまたは WAR パッケージを使用してデプロイされたアプリケーションに適しています

      コンテナーレジストリリポジトリタイプ

      説明
      • コンテナーレジストリリポジトリタイプ パラメーターは、ACK クラスタに Java、Tomcat、または EDAS-Container(HSF)アプリケーションをデプロイする場合にのみ使用できます。 ACK Serverless クラスタ にアプリケーションをデプロイする場合、このパラメーターは使用できません。

      • aliyun-acr-credential-helper コンポーネントをインストールする必要があります。詳細については、「aliyun-acr-credential-helper コンポーネントを使用してシークレットを使用せずにイメージをプルする」をご参照ください。

      • Container Registry Enterprise Edition のイメージリポジトリを使用する場合は、仮想プライベートクラウド(VPC)経由のアクセスを設定します。詳細については、「VPC ACL を設定する」をご参照ください。

      • アプリケーションのイメージビルドタスクはクラスタ内で実行され、リソースを消費します。単一イメージビルドタスクのデフォルトのリソース制限は、コアあたり 1 GB です。イメージビルドタスクのリソース制限を調整する方法の詳細については、「イメージビルドのリソース制限を調整するにはどうすればよいですか?」をご参照ください。

      Container Registry Personal Edition または Container Registry Enterprise Edition のリポジトリを使用して作成されたイメージを保存する場合、イメージビルドタスクはクラスタ内で実行されます。ビルドタスクには、次のスケジューリングアフィニティと容認ルールが適用されます。

      • EDAS は、edas.image.build=disable ラベルが付いているノードへのビルドタスクのスケジュールを拒否します。

      • EDAS は、edas.image.build=enable ラベルが付いているノードへのビルドタスクのスケジュールを優先します。ただし、EDAS は、edas.image.build ラベルが付いていないノードにもビルドタスクをスケジュールする場合があります。

      • ビルドタスクは、key=edas.image.build, effect=NoSchedule taint を持つノードを許容できます。

      説明
      • 特定のノードにビルドタスクをスケジュールしたくない場合は、ノードに edas.image.build=disable ラベルを追加します。

      • ノードをビルドタスクの専用ノードとして使用する場合、ノードに edas.image.build=enable ラベルと key=edas.image.build, effect=NoSchedule taint を追加できます。これにより、taint を許容しないポッドがノードにスケジュールされるのを防ぎます。

      イメージを使用してデプロイされたアプリケーションのみに適しています

      コンテナーレジストリのリージョン

      コンテナーレジストリイメージが存在するリージョンを選択します。このパラメーターは、コンテナーレジストリリポジトリタイプ パラメーターを Container Registry Enterprise Edition に設定した場合にのみ必須です。

      コンテナーレジストリ

      コンテナーイメージを選択します。このパラメーターは、コンテナーレジストリリポジトリタイプ パラメーターを Container Registry Enterprise Edition に設定した場合にのみ必須です。

      イメージリポジトリ名前空間

      ドロップダウンリストから、イメージリポジトリが存在するマイクロサービス名前空間を選択します。[+ 名前空間の作成] をクリックして、マイクロサービス名前空間を作成することもできます。

      バージョン

      デプロイパッケージのバージョン番号。タイムスタンプをバージョン番号として使用できます。

      JAR パッケージまたは WAR パッケージを使用してデプロイされたアプリケーションに適しています

      タイムゾーン

      ビジネス要件に基づいて、ドロップダウンリストからタイムゾーンを選択します。

      JAR パッケージまたは WAR パッケージを使用してデプロイされたアプリケーションに適しています

      単一ポッドリソースクォータ

      ポッド用に予約する CPU、メモリ、および一時ストレージ。制限を指定する場合は、数値を入力します。デフォルト値 0 は、制限が課されないことを指定します。ポッドに一時ストレージクォータを設定したくない場合、クラスタのパフォーマンスによって最大クォータが決まります。

      すべてのアプリケーションに適しています

    2. リリースポリシー セクションで、リリースポリシーを設定します。

      パラメーター

      説明

      カナリアリリースのインスタンス数

      最初のバッチのリリースのアプリケーションインスタンスの数。このパラメーターの右側でインスタンスの総数を確認できます。アプリケーションの安定性を確保するために、このパラメーターをインスタンスの総数の半分未満の値に設定することをお勧めします。

      説明

      カナリアリリースが実装された後、残りのバッチを手動でリリースする必要があります。

      残りのバッチ

      アプリケーションをリリースする残りのバッチの数。最初のバッチのリリースが完了すると、指定されたバッチに基づいて、残りのアプリケーションインスタンスにアプリケーションがデプロイされます。

      バッチモード

      説明

      残りのバッチ パラメーターを 1 より大きい値に設定する場合は、このパラメーターを設定する必要があります。

      次の処理方法がサポートされています。

      • 自動: 間隔 パラメーターで指定された間隔に基づいて、アプリケーションをバッチで自動的にリリースします。間隔: 残りのバッチをリリースする間隔(分)。

      • 手動: 次のバッチのリリースを手動でトリガーします。

      バッチ間のデプロイ間隔

      各バッチのアプリケーションインスタンスの数が 1 より大きい場合、アプリケーションは指定された間隔でアプリケーションインスタンスにデプロイされます。単位: 秒。

      右側の 公開ポリシーの設定 セクションには、設定に基づいたカナリアリリースのプロセスが表示されます。

    3. カナリアリリーシングルールを設定します。

      EDAS は、コンテンツによるカナリアリリース比率によるカナリアリリース のカナリアリリーシングルールをサポートしています。

      ルール

      パラメーター

      説明

      コンテンツによるカナリアリリース

      1. [ポリシーの追加] をクリックします。コンテンツポリシーによるカナリアリリースの追加 パネルで、ポリシー名 パラメーターを設定し、[受信トラフィックルールの作成] をクリックして、OK をクリックします。

      2. ポリシーの選択 ドロップダウンリストから、作成されたコンテンツポリシーを選択します。

      説明

      [受信トラフィックルールの作成] をクリックして、複数の受信トラフィックルールを作成できます。ルールは同時に有効になります。

      ポリシー名

      カスタムカナリアリリースポリシーの名前。

      プロトコルタイプ

      • Spring Cloud

        パス: 相対 HTTP パス。

      • Dubbo

        • サービスの選択: ドロップダウンリストからサービスを選択します。

        • メソッド: ドロップダウンリストからメソッドを選択します。

      条件モード

      以下のすべての条件を満たす または 以下のいずれかの条件を満たす を選択します。

      条件

      • Spring Cloud: Cookieヘッダー、または パラメーター に基づいてパラメーターを設定します。

      • Dubbo: パラメーターパラメーター値を取得するための式 をアプリケーションの実際の値に設定します。

      比率によるカナリアリリース

      トラフィック比率

      トラフィックは、設定された比率に基づいて現在のカナリアグループに転送されます。

      レーンによるカナリアリリース

      1. [+ポリシーの追加] をクリックします。 レーンカナリアリリース ポリシーの追加 パネルで、ポリシー名、レーングループ、およびレーンを設定し、OK をクリックします。

      2. ポリシーの選択 ドロップダウンリストで、作成したレーンカナリアリリース ポリシーを選択します。

      ポリシー名

      カスタムレーンカナリアリリース ポリシーの名前。

      レーングループ

      既存のレーングループを選択します。レーングループの作成方法については、「レーングループを作成する」をご参照ください。

      レーン

      既存のレーンを選択します。レーンの作成方法については、「レーンを作成する」をご参照ください。

    カナリアリリースが開始されると、EDAS はアプリケーションの新しいバージョンを指定されたカナリアインスタンスグループにデプロイします。デプロイの進捗状況とステータスは、アップグレード履歴 ページに表示されます。

    説明

    トラフィックが想定どおりに分散されているかどうかを確認できます。詳細については、「HSF サービスガバナンス」をご参照ください。

  6. カナリアリリースのトラフィックが検証された後、次のバッチを開始変更リスト ページの右側にある をクリックします。後続のバッチのリリースを完了します。

    検証中に問題が発生した場合は、変更リスト ページの右上隅にある ロールバック をクリックできます。表示されるダイアログボックスで、OK をクリックします。

    カナリアリリースが完了したら、アプリケーション概要 ページの デプロイ仕様 セクションで、デプロイパッケージが新しいバージョンであるかどうかを確認します。