All Products
Search
Document Center

Enterprise Distributed Application Service:Deploy a Java application in an ACK Serverless cluster using a JAR or WAR package

Last Updated:Mar 11, 2026

ACK Serverless clusters scale on demand without node management, making them a good fit for workloads with variable traffic. Enterprise Distributed Application Service (EDAS) integrates with Container Service for Kubernetes (ACK) to manage the full lifecycle of containerized applications in these clusters.

This tutorial walks you through deploying a Java application in an ACK Serverless cluster by using a demo JAR or WAR package provided by EDAS.

The deployment follows three phases:

  1. Create an ACK Serverless cluster in the ACK console.

  2. Import the cluster into EDAS so EDAS can manage applications on it.

  3. Deploy an application using a JAR or WAR package through the EDAS console.

Procedure of deploying an application in a Kubernetes cluster
If you already have an ACK Serverless cluster, skip to Step 2: Import the cluster into EDAS. If you have already imported the cluster, skip directly to Step 3: Deploy the application.

Prerequisites

Before you begin, make sure that you have:

Step 1: Create an ACK Serverless cluster

Log on to the ACK console and create an ACK Serverless cluster. For instructions, see Create an ASK cluster.

Step 2: Import the cluster into EDAS

When you import an ACK cluster, EDAS automatically installs the following components:

Component

Purpose

ack-ahas-sentinel-pilot

Throttling and degradation protection

ack-arms-pilot

Application Real-Time Monitoring Service (ARMS) agent

ack-arms-prometheus

Prometheus monitoring

To import the cluster:

  1. Log on to the EDAS console. In the left-side navigation pane, choose Resource Management > Serverless Kubernetes Clusters.

  2. In the top navigation bar, select the region and microservices namespace where your ACK Serverless cluster resides. Click Synchronize Serverless Kubernetes Cluster.

  3. Find the target cluster and click Import in the Actions column.

  4. In the Warning message, click OK.

  5. In the Precheck for Import dialog box, click Continue.

  6. In the Import Kubernetes Cluster dialog box, select a microservices namespace from the Microservice Namespace drop-down list, turn Service Mesh on or off based on your requirements, and click Import.

Verify the import

After the import completes, confirm that the Cluster Status column shows Running and the Import Status column shows Imported.

Step 3: Deploy the application

This step covers creating an application and deploying it with a JAR or WAR package. The overall process is the same for both package types. The only difference is in the runtime environment selection:

Package type

Runtime environment

Configurable parameters

JAR

Java (Dubbo or Spring Boot)

Java Environment

WAR

Tomcat (Dubbo or Spring)

Java Environment, Container Version

WAR or FatJar

EDAS-Container (HSF) (High-Speed Service Framework)

Java Environment, Pandora Version, Ali-Tomcat Version

The following steps use a JAR package as an example. If you are deploying a WAR package, select Tomcat or EDAS-Container (HSF) instead of Java in the Basic Information step.

3a. Create an application

  1. Log on to the EDAS console. In the left-side navigation pane, choose Application Management > Applications.

  2. In the top navigation bar, select a region and microservices namespace. Click Create Application.

3b. Configure basic information

In the Basic Information step, configure the following parameters and click Next.

Parameter

Description

Cluster Type

Select Kubernetes Clusters.

Application Source Type

Select Default.

Hosted Applications

Select the programming language. This tutorial uses Java. To deploy a PHP or multilingual application, see Build PHP applications from source code and deploy them in ACK clusters.

Select Application

Select the runtime environment based on your application type and deployment package. See the runtime options table above. To deploy using an image instead, see Use an image to deploy a Java microservices application in a Kubernetes cluster.

OpenJDK 17 compatibility

OpenJDK 17 is compatible with Dubbo 2.7.14 and later, or Dubbo 3.0.6 and later. The following table lists tested version combinations.

Dubbo version

Spring Boot version

Nacos client version

API call

ARMS monitoring

Service list

2.7.14

2.7.9

1.4.4

Supported

Supported

Supported

2.7.14

2.7.9

2.1.2

Supported

Supported

Supported

2.7.14

2.7.9

2.2.0

Supported

Supported

Supported

2.7.22

2.7.9

1.4.4

Supported

Supported

Supported

2.7.22

2.7.9

2.1.2

Supported

Supported

Supported

2.7.22

2.7.9

2.2.0

Supported

Supported

Supported

3.0.6

2.7.9

1.4.4

Supported

Supported

Supported

3.0.6

2.7.9

2.1.2

Supported

Supported

Supported

3.0.6

2.7.9

2.2.0

Supported

Supported

Supported

3.1.7

2.7.9

1.4.4

Supported

Supported

Supported

3.1.7

2.7.9

2.1.2

Supported

Supported

Supported

3.1.7

2.7.9

2.2.0

Supported

Supported

Supported

3c. Configure deployment settings

In the Configurations step, configure the following parameters and click Next.

Environment and cluster settings:

Parameter

Description

Microservice Namespace

Select the microservices namespace you created. Defaults to Default if none is selected. To create one, click Create Microservice Namespace. See the "Create a namespace" section of Manage microservices namespaces.

Cluster

Select the imported ACK Serverless cluster. If the cluster has not been imported to EDAS, select This cluster is used for the first time in EDAS to import it during application creation. The cluster does not need to belong to the same microservices namespace as the application.

K8s Namespace

Select the Kubernetes namespace. Valid values: default, kube-system, kube-public. Select default for this tutorial. To create a custom namespace, click Create Kubernetes Namespace and enter a name (1-63 characters; lowercase letters, digits, and hyphens; must start and end with a letter or digit).

Application settings:

Parameter

Description

Application Name

Enter a name (up to 36 characters; starts with a letter; allows letters, digits, and hyphens).

Application Description

Optional. Up to 128 characters.

Deployment package:

Parameter

Description

Source of Deployment Package

Select a deployment source.

  • Custom Program: Upload your own package. Set File Uploading Method to Upload JAR Package (upload directly) or JAR Package Address (provide a URL).

  • Official Demo: Select a pre-built demo: Spring Cloud Server Application, Spring Cloud Client Application, Dubbo Server Application, or Dubbo Client Application.

Version and resource settings:

Parameter

Description

Version

Enter a version number or click Use Timestamp as Version Number to generate one.

Time Zone

Select the application time zone.

Total Pods

Set the number of pods for the application. Maximum is subject to cluster capacity.

Single-pod Resource Quota

Set CPU, memory, and ephemeral storage limits per pod. The default value 0 means no limit. Maximum quotas depend on cluster capacity.

OpenJDK base image settings

The OpenJDK Base Image parameter is available only if you selected Custom OpenJDK for Java Environment in the Basic Information step.

Configure the base image source:

  • Current Account: Specify Region, Container Registry, Image Repository Namespace, and Image Repository Name.

  • Other Alibaba Cloud Accounts: Specify Full Image Address for a public repository.

Important

Only JDK 7 and JDK 8 are supported. The EDAS server pulls the base image to build the application image, so the base image must have public pull permissions.

Container Registry settings (ACK clusters only)

The Container Registry Repository Type parameter is only available for Java, Tomcat, or EDAS-Container (HSF) applications deployed in ACK clusters. It is not available for ACK Serverless clusters.

Parameter

Description

Container Registry Repository Type

Select Container Registry Personal Edition or Container Registry Enterprise Edition to store the built image. The aliyun-acr-credential-helper component is required. See Use the aliyun-acr-credential-helper component to pull images without secrets. For Enterprise Edition, configure VPC access first. See Configure access over VPCs.

Region of Container Registry

Required only for Enterprise Edition. Select the region of your Container Registry (ACR) image.

Container Registry

Required only for Enterprise Edition. Select your container image.

Image Repository Namespace

Select the namespace for your image repository, or click + Create Namespace to create one.

Image build tasks run in your cluster and consume cluster resources. The default resource limit for a single image build task is 1 GB per core. To adjust this limit, see Adjust resource limits for image building.

Build task scheduling rules:

Rule

Behavior

Exclusion

EDAS does not schedule build tasks to nodes labeled edas.image.build=disable.

Preference

EDAS prefers to schedule build tasks to nodes labeled edas.image.build=enable, but may also use unlabeled nodes.

Toleration

Build tasks tolerate nodes with the taint key=edas.image.build, effect=NoSchedule.

Tip: To dedicate a node to build tasks, add the label edas.image.build=enable and the taint key=edas.image.build, effect=NoSchedule. This prevents other pods from being scheduled to that node.

3d. Configure advanced settings (optional)

In the Advanced Settings step, configure any of the following as needed:

3e. Create and deploy

  1. After configuring all settings, click Create Application. In the Creation Completed step, click Create Application again.

  2. In the Confirm Application Change Precheck dialog box, click Start Precheck.

  3. Review the precheck results and click Continue. If you modified any precheck items, click Check Again before continuing.

Verify the deployment

The deployment takes several minutes. Track progress on the Change List page.

After deployment completes, go to Application Overview and check the pod status:

  • If all pods show running, the application deployed successfully.

  • Click a pod's running status to view its Deployments, pod details, and advanced configurations.

If pods do not reach the running state, check the pod events and logs on the Application Overview page to identify the issue.

Expose the application with a load balancer

After deploying the application, add a Server Load Balancer (SLB) instance to expose it:

SLB type

Use case

Internet-facing

Exposes the application to the Internet

Internal-facing

Exposes the application to all nodes in the same VPC over an internal network

For instructions, see Add an SLB instance to an application in a Kubernetes cluster.

Support

For questions about ACK or ACK Serverless clusters in EDAS, submit a ticket or join the DingTalk group 23197114.