ACK サーバーレスクラスターは、ノード管理を必要とせずオンデマンドでスケールするため、トラフィック量が変動するワークロードに最適です。Enterprise Distributed Application Service (EDAS) は Container Service for Kubernetes (ACK) と統合されており、これらのクラスター内におけるコンテナ化アプリケーションのライフサイクル全体を管理します。
本チュートリアルでは、EDAS が提供する公式デモの JAR または WAR パッケージを用いて、ACK サーバーレスクラスターへ Java アプリケーションをデプロイする手順を説明します。
デプロイは以下の 3 つのフェーズに分かれます:
ACK サーバーレスクラスターの作成:ACK コンソールで実行します。
クラスターの EDAS へのインポート:EDAS がそのクラスター上のアプリケーションを管理できるようにします。
アプリケーションのデプロイ:EDAS コンソールから JAR または WAR パッケージを用いて実行します。

すでに ACK サーバーレスクラスターをお持ちの場合は、ステップ 2「クラスターを EDAS にインポート」から開始してください。また、既にクラスターを EDAS にインポート済みの場合は、ステップ 3「アプリケーションのデプロイ」に直接進んでください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Alibaba Cloud アカウントで EDAS と ACK の両方が有効化されていること。 詳細については、「EDAS の有効化」および「ACK クイックスタート」をご参照ください。
Alibaba Cloud アカウントに ACK のデフォルトロールを付与しました。詳細については、「ACK のデフォルトロール」をご参照ください。
ステップ 1:ACK サーバーレスクラスターの作成
ACK コンソールにログインし、ACK サーバーレス Kubernetes クラスターを作成します。詳細については、「ASK クラスターを作成する」をご参照ください。
ステップ 2:クラスターを EDAS にインポート
ACK クラスターをインポートすると、EDAS は自動的に以下のコンポーネントをインストールします。
コンポーネント | 目的 |
ack-ahas-sentinel-pilot | レート制限および劣化保護 |
ack-arms-pilot | Application Real-Time Monitoring Service (ARMS) エージェント |
ack-arms-prometheus | Prometheus モニタリング |
クラスターをインポートするには、以下の手順を実行します。
EDAS コンソールにログインします。左側のナビゲーションウィンドウで、Resource Management > Serverless Kubernetes Clusters を選択します。
上部のナビゲーションバーで、ACK サーバーレスクラスターが存在するリージョンおよびマイクロサービス名前空間を選択します。その後、Serverless Kubernetes Cluster の同期をクリックします。
対象のクラスターを見つけ、Actions 列の Import をクリックします。
Warning メッセージが表示されたら、OK をクリックします。
Precheck for Import ダイアログボックスで、Continue をクリックします。
Import Kubernetes Cluster ダイアログボックスで、Microservice Namespace のドロップダウンリストからマイクロサービス名前空間を選択し、要件に応じて Service Mesh を有効または無効に設定した後、Import をクリックします。
インポートの確認
インポートが完了したら、Cluster Status 列に Running、Import Status 列に Imported が表示されていることを確認します。
ステップ 3:アプリケーションのデプロイ
このステップでは、アプリケーションの作成および JAR または WAR パッケージを用いたデプロイについて説明します。両パッケージタイプの全体的な手順は同一ですが、実行環境の選択のみ異なります。
パッケージタイプ | 実行環境 | 設定可能なパラメーター |
JAR | Java(Dubbo または Spring Boot) | Java Environment |
WAR | Tomcat(Dubbo または Spring) | Java Environment、Container Version |
WAR または FatJar | EDAS-Container (HSF)(High-Speed Service Framework) | Java Environment、Pandora Version、Ali-Tomcat Version |
以降の手順では、JAR パッケージを例として説明します。WAR パッケージをデプロイする場合は、Basic Information ステップで Java の代わりに Tomcat または EDAS-Container (HSF) を選択してください。
3a. アプリケーションの作成
EDAS コンソールにログインします。左側のナビゲーションウィンドウで、Application Management > Applications を選択します。
上部のナビゲーションバーでリージョンおよびマイクロサービス名前空間を選択し、Create Application をクリックします。
3b. 基本情報の設定
Basic Information ステップで、以下のパラメーターを設定し、Next をクリックします。
パラメーター | 説明 |
Cluster Type | Kubernetes Clusters を選択します。 |
Application Source Type | Default を選択します。 |
Hosted Applications | プログラミング言語を選択します。このチュートリアルでは [Java] を使用します。PHP または多言語アプリケーションをデプロイするには、「ソースコードから PHP アプリケーションをビルドし、ACK クラスターにデプロイする」をご参照ください。 |
Select Application | アプリケーションタイプとデプロイメントパッケージに基づいて実行環境を選択します。 上記のランタイムオプションの表をご参照ください。 代わりにイメージを使用してデプロイするには、「イメージを使用して Kubernetes クラスターに Java マイクロサービスアプリケーションをデプロイする」をご参照ください。 |
OpenJDK 17 の互換性
OpenJDK 17 は Dubbo 2.7.14 以降、または Dubbo 3.0.6 以降と互換があります。以下の表に、検証済みのバージョン組み合わせを示します。
Dubbo バージョン | Spring Boot バージョン | Nacos クライアントバージョン | API 呼び出し | ARMS モニタリング | サービス一覧 |
2.7.14 | 2.7.9 | 1.4.4 | 対応 | 対応 | 対応 |
2.7.14 | 2.7.9 | 2.1.2 | 対応 | 対応 | 対応 |
2.7.14 | 2.7.9 | 2.2.0 | 対応 | 対応 | 対応 |
2.7.22 | 2.7.9 | 1.4.4 | 対応 | 対応 | 対応 |
2.7.22 | 2.7.9 | 2.1.2 | 対応 | 対応 | 対応 |
2.7.22 | 2.7.9 | 2.2.0 | 対応 | 対応 | 対応 |
3.0.6 | 2.7.9 | 1.4.4 | 対応 | 対応 | 対応 |
3.0.6 | 2.7.9 | 2.1.2 | 対応 | 対応 | 対応 |
3.0.6 | 2.7.9 | 2.2.0 | 対応 | 対応 | 対応 |
3.1.7 | 2.7.9 | 1.4.4 | 対応 | 対応 | 対応 |
3.1.7 | 2.7.9 | 2.1.2 | 対応 | 対応 | 対応 |
3.1.7 | 2.7.9 | 2.2.0 | 対応 | 対応 | 対応 |
3c. デプロイ設定の構成
Configurations ステップで、以下のパラメーターを設定し、Next をクリックします。
環境およびクラスター設定:
パラメーター | 説明 |
Microservice Namespace | 作成した microservices namespace を選択します。未選択の場合、デフォルトで [デフォルト] が選択されます。作成するには、[マイクロサービス名前空間の作成] をクリックします。詳細については、「microservices namespace の管理」の「名前空間の作成」セクションをご参照ください。 |
Cluster | インポート済みの ACK サーバーレスクラスターを選択します。クラスターがまだ EDAS にインポートされていない場合は、アプリケーション作成時に This cluster is used for the first time in EDAS を選択することで、インポートを同時に行えます。クラスターはアプリケーションと同じマイクロサービス名前空間である必要はありません。 |
K8s Namespace | Kubernetes 名前空間を選択します。有効な値: default、kube-system、kube-public。本チュートリアルでは default を選択します。カスタム名前空間を作成する場合は、Create Kubernetes Namespace をクリックし、名前(1~63 文字、小文字・数字・ハイフン可、先頭および末尾は英字または数字)を入力します。 |
アプリケーション設定:
パラメーター | 説明 |
Application Name | 名前を入力します(最大 36 文字、先頭は英字、英字・数字・ハイフン可)。 |
Application Description | 任意項目です(最大 128 文字)。 |
デプロイメントパッケージ:
パラメーター | 説明 |
Source of Deployment Package | デプロイメントソースを選択します。 |
Custom Program:ご自身のパッケージをアップロードします。File Uploading Method を Upload JAR Package(直接アップロード)または JAR Package Address(URL を指定)に設定します。
Official Demo:事前にビルド済みのデモを選択します:Spring Cloud Server Application、Spring Cloud Client Application、Dubbo Server Application、または Dubbo Client Application。
バージョンおよびリソース設定:
パラメーター | 説明 |
Version | バージョン番号を入力するか、Use Timestamp as Version Number をクリックして自動生成します。 |
Time Zone | アプリケーションのタイムゾーンを選択します。 |
Total Pods | アプリケーションの Pod 数を設定します。最大値はクラスターの容量に依存します。 |
Single-pod Resource Quota | Pod ごとの CPU、メモリ、一時ストレージの上限を設定します。 |
OpenJDK ベースイメージ設定
OpenJDK Base Image パラメーターは、Basic Information ステップで Java Environment に Custom OpenJDK を選択した場合にのみ利用可能です。
ベースイメージのソースを構成します。
Current Account: Region、Container Registry、Image Repository Namespace、および Image Repository Name を指定します。
Other Alibaba Cloud Accounts:パブリックリポジトリの場合は Full Image Address を指定します。
JDK 7 および JDK 8 のみがサポートされています。EDAS サーバーがベースイメージをプルしてアプリケーションイメージをビルドするため、ベースイメージにはパブリックプル権限が必要です。
Container Registry 設定(ACK クラスターのみ)
Container Registry Repository Type パラメーターは、ACK クラスターにデプロイされる Java、Tomcat、または EDAS-Container (HSF) アプリケーションでのみ利用可能です。ACK サーバーレスクラスターでは利用できません。
パラメーター | 説明 |
Container Registry Repository Type | ビルドされたイメージを保存するには、[Container Registry Personal Edition] または [Container Registry Enterprise Edition] を選択します。必要なコンポーネントは、 |
Region of Container Registry | Enterprise Edition のみ必須です。Container Registry(ACR)イメージのリージョンを選択します。 |
Container Registry | Enterprise Edition のみ必須です。コンテナイメージを選択します。 |
Image Repository Namespace | イメージリポジトリの名前空間を選択するか、+ Create Namespace をクリックして新規作成します。 |
イメージビルドタスクは、お客様のクラスター内で実行され、クラスター リソースを消費します。単一のイメージビルドタスクに対するデフォルトのリソース制限は、コアあたり 1 GB です。この制限を調整するには、「イメージビルドのリソース制限を調整する方法」をご参照ください。
ビルドタスクのスケジューリングルール:
ルール | 動作 |
除外 | EDAS は、 |
優先 | EDAS は、 |
許容 | ビルドタスクは、Taint |
ヒント:ビルドタスク専用のノードを確保するには、ラベルedas.image.build=enableおよび Taintkey=edas.image.build, effect=NoScheduleを追加します。これにより、他の Pod がそのノードにスケジュールされなくなります。
3d. 詳細設定(任意)
Advanced Settings ステップで、必要に応じて以下のいずれかを構成します。
3e. アプリケーションの作成およびデプロイ
すべての設定を完了したら、Create Application をクリックします。Creation Completed ステップで、再度 Create Application をクリックします。
Confirm Application Change Precheck ダイアログボックスで、Start Precheck をクリックします。
事前チェック結果を確認し、Continue をクリックします。事前チェック項目を変更した場合は、続行前に Check Again をクリックしてください。
デプロイの確認
デプロイには数分かかります。Change List ページで進行状況を追跡できます。
デプロイが完了したら、Application Overview に移動し、Pod のステータスを確認します。
すべての Pod が running と表示されている場合、アプリケーションのデプロイは成功しています。
Pod の running ステータスをクリックすると、その Deployments、Pod の詳細、および詳細設定を確認できます。
Pod が running ステータスに達しない場合は、Application Overview ページで Pod のイベントおよびログを確認し、原因を特定してください。
ロードバランサーによるアプリケーションの公開
アプリケーションのデプロイ後に、Server Load Balancer (SLB) インスタンスを追加してアプリケーションを公開します。
SLB タイプ | ユースケース |
インターネット向け | アプリケーションをインターネットに公開 |
内部向け | アプリケーションを同一 VPC 内のすべてのノードに内部ネットワーク経由で公開 |
手順については、「Kubernetes クラスター内のアプリケーションに SLB インスタンスを追加」をご参照ください。
サポート
EDAS における ACK または ACK サーバーレスクラスターに関するお問い合わせは、「チケットを送信」するか、DingTalk グループ 23197114 に参加してください。