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

Enterprise Distributed Application Service:ACK Serverless クラスターに JAR パッケージまたは WAR パッケージを使用してアプリケーションをデプロイする

最終更新日:Jan 07, 2025

Enterprise Distributed Application Service (EDAS) は、クラウドネイティブ Kubernetes ベースの Container Service for Kubernetes (ACK) と統合されています。EDAS を使用すると、Kubernetes コンテナ化アプリケーションのライフサイクル全体を管理できます。Serverless Kubernetes クラスターは、迅速なスケーリングを必要とするアジャイルなビジネスシナリオに適しています。このトピックでは、EDAS が提供するデモ JAR パッケージまたはデモ WAR パッケージを使用して、ACK Serverless クラスターにアプリケーションをデプロイする方法について説明します。

背景情報

ACK Serverless クラスターにアプリケーションをデプロイするには、ACK コンソールで ACK Serverless クラスターを作成します。次に、EDAS コンソールでクラスターをインポートし、デプロイメントパッケージまたはイメージを使用して、インポートされたクラスターにアプリケーションをデプロイします。

Procedure of deploying an application in a Kubernetes cluster

前提条件

手順 1:ASK クラスターを作成する

ACK コンソール にログインし、ACK Serverless クラスターを作成します。詳細については、「ASK クラスターを作成する」をご参照ください。

手順 2:ASK クラスターを EDAS コンソールにインポートする

デフォルトでは、EDAS コンソールで ACK クラスターを EDAS にインポートすると、ack-ahas-sentinel-pilot、ack-arms-pilot、および ack-arms-prometheus コンポーネントがインストールされます。 ack-ahas-sentinel-pilot コンポーネントは、スロットリングとデグレードのためのアプリケーション保護コンポーネントです。 ack-arms-pilot コンポーネントは、Application Real-Time Monitoring Service (ARMS) コンポーネントです。 ack-arms-prometheus コンポーネントは、Prometheus モニタリングコンポーネントです。

  1. EDAS コンソール にログインします。左側のナビゲーションペインで、[リソース管理] > [serverless Kubernetes クラスター] を選択します。

  2. 上部のナビゲーションバーで、リージョンと ASK クラスターが存在するマイクロサービス名前空間を選択します。次に、[serverless Kubernetes クラスターの同期] をクリックします。

  3. EDAS に同期されている ACK Serverless クラスターを見つけ、インポート[アクション] 列の をクリックします。

  4. [警告] メッセージで、[OK] をクリックします。

  5. [インポートの事前チェック] ダイアログボックスで、[続行] をクリックします。

  6. [kubernetes クラスタのインポート] ダイアログボックスで、[Microservice Namespace] ドロップダウンリストから ACK Serverless クラスタをインポートするマイクロサービス名前空間を選択し、ビジネス要件に基づいて [service Mesh] をオンまたはオフにして、[インポート] をクリックします。

    [クラスターの状態] 列の値が [実行中] で、[インポート状態] 列の値が ACK Serverless クラスターで [インポート済み] の場合、クラスターは EDAS にインポートされます。

手順 3:ACK Serverless クラスターにアプリケーションをデプロイする

説明

WAR パッケージを使用してアプリケーションをデプロイする手順は、JAR パッケージを使用する場合と同じです。このトピックの例では、JAR パッケージを使用してアプリケーションをデプロイする方法を示します。

  1. EDAS コンソール にログインします。左側のナビゲーションペインで、[アプリケーション管理] > [アプリケーション] を選択します。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、マイクロサービス名前空間を選択します。[アプリケーション] ページの左上隅にある [アプリケーションの作成] をクリックします。

  2. [基本情報] ステップで、[クラスターの種類] セクションと [アプリケーションランタイム環境] セクションのパラメーターを設定し、[次へ] をクリックします。

    パラメーター

    説明

    クラスタタイプ

    アプリケーションをデプロイするクラスタのタイプ。 Kubernetes クラスタ を選択します。

    アプリケーションソースタイプ

    アプリケーションのソース。 デフォルト を選択します。

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

    管理アプリケーションタイプ

    アプリケーションが開発されたプログラミング言語。このトピックでは、Java アプリケーションをデプロイする方法の例を示します。この例では、Java を選択します。 PHP アプリケーションまたは多言語アプリケーションをデプロイする方法の詳細については、「ソースコードから PHP アプリケーションをビルドし、ACK クラスタにデプロイする」をご参照ください。

    Select Application

    アプリケーションのランタイム環境。このトピックでは、JAR または WAR パッケージを使用して Java アプリケーションをデプロイする方法の例を示します。この例では、アプリケーションとデプロイメントパッケージのタイプに基づいて、JavaTomcat、または EDAS-Container (HSF) を選択します。イメージを使用してアプリケーションをデプロイする方法の詳細については、「イメージを使用して Kubernetes クラスタに Java マイクロサービスアプリケーションをデプロイする」をご参照ください。

    • Java: ユニバーサル JAR パッケージを使用してアプリケーションを Dubbo または Spring Boot アプリケーションとしてデプロイする場合、このオプションを選択します。このオプションを選択した後、Java 環境 パラメーターを指定できます。

    • Tomcat: ユニバーサル WAR パッケージを使用してアプリケーションを Dubbo または Spring アプリケーションとしてデプロイする場合、このオプションを選択します。このオプションを選択した後、Java 環境 パラメーターと コンテナバージョン パラメーターを構成できます。

    • EDAS-Container (HSF): WAR または FatJar パッケージを使用してアプリケーションを High-Speed Service Framework (HSF) アプリケーションとしてデプロイする場合、このオプションを選択します。このオプションを選択した後、Java 環境Pandora Version、および Ali-Tomcat Version パラメーターを構成できます。

    説明

    OpenJDK 17 は、Dubbo 2.7.14 以降または Dubbo 3.0.6 以降と互換性があります。 OpenJDK 17 の互換性テストデータの詳細については、「OpenJDK 17 の互換性テストデータ」をご参照ください。

    表 1. OpenJDK 17 の互換性テストデータ

    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

    サポートされています

    サポートされています

    サポートされています

  3. [構成] ステップで、アプリケーションの環境情報、基本情報、デプロイ方法、およびリソース パラメーターを構成し、[次へ] をクリックします。

    パラメーター

    説明

    マイクロサービス名前空間

    アプリケーションをデプロイするマイクロサービス名前空間。作成したマイクロサービス名前空間を選択します。マイクロサービス名前空間がない場合、または選択しない場合、このパラメーターは デフォルト に設定されます。

    マイクロサービス名前空間 を作成していない場合、または別の マイクロサービス名前空間 を作成する場合は、[マイクロサービス名前空間の作成] をクリックして マイクロサービス名前空間 を作成します。詳細については、マイクロサービス名前空間の管理 トピックの「名前空間の作成」セクションをご参照ください。

    クラスター

    アプリケーションをデプロイするクラスター。[クラスター] ドロップダウンリストからインポートされた ACK クラスターを選択します。

    選択した Kubernetes クラスターが EDAS にインポートされていない場合は、[このクラスターは EDAS で初めて使用されます。このチェックボックスをオンにすると、アプリケーションの作成時にクラスターが EDAS にインポートされます。これにはある程度の時間がかかります。] を選択します。次に、Alibaba Cloud Service Mesh がアクティブになっているかどうかを確認します。

    説明

    アプリケーションと同じマイクロサービス名前空間に属していないクラスターを選択できます。

    K8s 名前空間

    アプリケーションの Kubernetes 名前空間。内部システムオブジェクトは、異なる Kubernetes 名前空間に割り当てられ、論理的に分離されたプロジェクト、チーム、またはユーザーグループを形成します。これにより、異なるグループを個別に管理し、クラスター全体のリソースを共有できます。有効な値:

    • default: デフォルトの Kubernetes 名前空間。オブジェクトに Kubernetes 名前空間を指定しない場合、デフォルトの Kubernetes 名前空間が使用されます。

    • kube-system: システムによって作成されたオブジェクトの Kubernetes 名前空間。

    • kube-public: システムによって自動的に作成される Kubernetes 名前空間。この Kubernetes 名前空間は、認証されていないユーザーを含むすべてのユーザーが読み取ることができます。

    この例では、default を選択します。

    カスタム Kubernetes 名前空間を作成する場合は、[kubernetes 名前空間の作成] をクリックします。表示されるダイアログボックスで、[k8s 名前空間] フィールドに Kubernetes 名前空間の名前を入力します。名前には数字、小文字、ハイフン (-) を使用でき、長さは 1 ~ 63 文字です。文字または数字で開始および終了する必要があります。

    アプリケーション名

    アプリケーションの名前。名前は文字で始まり、数字、文字、ハイフン (-) を含めることができます。名前の長さは最大 36 文字です。

    アプリケーションの説明

    アプリケーションの説明。説明の長さは最大 128 文字です。

    デプロイパッケージのソース

    カスタムプログラム

    このオプションを選択した場合は、ファイルのアップロード方法 パラメーターを指定する必要があります。[ファイルのアップロード方法] パラメーターの有効な値:

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

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

    公式デモ

    EDAS は、次のデモタイプを提供します。Spring Cloud Server ApplicationSpring Cloud Client ApplicationDubbo Server ApplicationDubbo Client Application。ビジネス要件に基づいてデモタイプを選択します。

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

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

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

    • Container Registry Enterprise Edition のイメージリポジトリを使用する場合は、VPC 経由のアクセスを設定します。詳細については、VPC 経由のアクセスを設定する をご参照ください。

    • アプリケーションのイメージビルドタスクはクラスター内で実行され、リソースを消費します。単一イメージビルドタスクのデフォルトのリソース制限は、コアあたり 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 に設定した場合にのみ必須です。

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

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

    バージョン

    アプリケーションのバージョン番号。カスタムバージョン番号を指定するか、[タイムスタンプをバージョン番号として使用する] をクリックしてバージョン番号を生成します。

    タイムゾーン

    アプリケーションのタイムゾーン。

    Openjdk ベースイメージ

    説明

    Openjdk ベースイメージ パラメーターは、[基本情報] ステップの [java 環境] ドロップダウンリストから カスタム Openjdk を選択した場合にのみ使用できます。

    イメージの設定

    • Alibaba Cloud Container Registry パラメーターを 現在のアカウント に設定する場合は、次の操作を実行します。

      リージョンコンテナーレジストリイメージリポジトリの名前空間イメージリポジトリ名 パラメーターを設定し、イメージバージョンを選択します。

    • Alibaba Cloud Container Registry パラメーターを その他の Alibaba Cloud アカウント に設定する場合は、次の操作を実行します。イメージがパブリックリポジトリに保存されている場合は、完全なイメージアドレス パラメーターを指定します。

      重要

      JDK 7 と JDK 8 のみがサポートされています。別の JDK バージョンを使用すると、アプリケーション監視機能の使用時に例外が報告される場合があります。EDAS サーバーはベースイメージをプルしてアプリケーションイメージをビルドします。ベースイメージのプル権限がパブリックであることを確認してください。

    ポッドの合計数

    アプリケーションをデプロイするポッドの数。ポッドの最大数は、クラスターのパフォーマンスによって異なります。

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

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

  4. (オプション) [詳細設定] ステップで、詳細設定を構成します。

  5. 詳細設定を行った後、[アプリケーションの作成] をクリックします。[作成完了] ステップで、[アプリケーションの作成] をクリックします。

  6. [アプリケーション変更の確認の事前チェック] ダイアログボックスで、[事前チェックの開始] をクリックします。

    1. ダイアログボックス内のデータが更新された後、事前チェック項目と結果を確認し、[続行] をクリックします。

    2. (オプション) 上記の事前チェック項目を変更した場合は、[再確認] をクリックします。

    アプリケーションのデプロイには数分かかります。処理中は、[変更リスト] ページで変更レコードを表示して、アプリケーションのデプロイの進捗状況を追跡できます。アプリケーションをデプロイした後、[アプリケーション概要] ページに移動して、Pod の実行状態を表示します。Pod が 実行中 状態の場合、アプリケーションはデプロイされています。Pod の実行状態をクリックすると、[デプロイメント][pod]、およびアプリケーションインスタンスの高度な構成を表示できます。

次の手順

アプリケーションがデプロイされた後、インターネットに接続する Server Load Balancer (SLB) インスタンスを追加して、インターネット経由でアプリケーションにアクセスできるようにすることができます。また、内部向け SLB インスタンスを追加して、同じ VPC 内のすべてのノードが内部ネットワーク経由でアプリケーションにアクセスできるようにすることもできます。詳細については、「Kubernetes クラスターのアプリケーションに SLB インスタンスを追加する」をご参照ください。

EDAS の ACK および Serverless Kubernetes クラスターの DingTalk グループ

EDAS で Container Service for Kubernetes (ACK) および Serverless Kubernetes クラスターを使用する際に質問や提案がある場合は、チケット を送信してください。フィードバックを提供するには、DingTalk グループ ID 23197114 を検索して DingTalk グループに参加することもできます。