Saat perlu menjalankan aplikasi Java di Kubernetes tanpa mengelola infrastruktur kluster secara langsung, Enterprise Distributed Application Service (EDAS) menyediakan manajemen siklus hidup lengkap di atas Container Service for Kubernetes (ACK). Alih-alih membangun gambar kontainer dan menulis manifes Kubernetes secara manual, Anda cukup mengunggah paket JAR atau WAR, dan EDAS akan menangani proses kontainerisasi serta penerapan.
Topik ini menjelaskan cara membuat kluster ACK, mengimpornya ke EDAS, dan menerapkan aplikasi Java menggunakan paket JAR atau WAR demo.
Alur Kerja
| Langkah | Tugas | Deskripsi |
|---|---|---|
| 1 | Prasyarat | Aktifkan EDAS dan ACK, buat namespace layanan mikro, berikan peran yang diperlukan |
| 2 | Buat kluster ACK | Buat kluster Kubernetes terkelola di Konsol ACK |
| 3 | Impor kluster ke EDAS | Sinkronkan dan impor kluster agar EDAS dapat mengelola penerapan |
| 4 | Terapkan aplikasi | Konfigurasikan dan terapkan aplikasi Java menggunakan paket JAR atau WAR |
| 5 | Verifikasi penerapan | Pastikan Pod sedang berjalan |
| 6 | Langkah selanjutnya | Ekspos aplikasi melalui load balancer |

Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki Akun Alibaba Cloud dengan EDAS diaktifkan dan ACK diaktifkan
Peran default ACK telah diberikan ke akun Anda
Langkah 1: Buat kluster ACK
Masuk ke Konsol ACK dan buat kluster Kubernetes terkelola. Untuk petunjuknya, lihat Buat kluster Kubernetes terkelola.
Untuk membuat kluster ACK Serverless yang mendukung Alibaba Cloud Service Mesh (ASM) setelah diimpor ke EDAS, atur VPC menjadi Create VPC dan Service Discovery menjadi PrivateZone. Jika Anda mengatur VPC ke Select Existing VPC, pastikan kluster memiliki resource VPC dan vSwitch setelah pembuatan. Untuk detailnya, lihat Buat kluster ACK Serverless.
Langkah 2: Impor kluster ACK ke EDAS
Saat mengimpor kluster ACK, EDAS secara otomatis menginstal komponen berikut:
| Komponen | Tujuan |
|---|---|
| ack-ahas-sentinel-pilot | Proteksi aplikasi (Pembatasan kecepatan dan degradasi) |
| ack-arms-pilot | Agen Application Real-Time Monitoring Service (ARMS) |
| ack-arms-prometheus | Agen pemantauan Prometheus |
Untuk mengimpor kluster:
Masuk ke Konsol EDAS. Di panel navigasi kiri, pilih Resource Management > Container Service Kubernetes Clusters.
Di bilah navigasi atas, pilih wilayah tempat kluster ACK Anda berada, lalu klik Synchronize Container Service Kubernetes Cluster.
Temukan kluster yang telah disinkronkan dan klik Import di kolom Actions.
Di kotak dialog Precheck for Import, klik Continue.
Di kotak dialog Import Kubernetes Cluster, pilih namespace layanan mikro dari daftar drop-down Microservice Namespace. Aktifkan atau nonaktifkan Service Mesh sesuai kebutuhan, lalu klik Import.
Impor selesai ketika kluster menampilkan status Running di kolom Cluster Status dan Imported di kolom Import Status.
Langkah 3: Terapkan aplikasi
Prosedur penerapan sama untuk paket JAR dan WAR. Langkah-langkah berikut menggunakan paket JAR sebagai contoh.
3a. Buat aplikasi
Masuk ke Konsol EDAS. Di panel navigasi kiri, pilih Application Management > Applications.
Di bilah navigasi atas, pilih wilayah. Di bagian atas halaman, pilih namespace layanan mikro. Di pojok kiri atas halaman Applications, klik Create Application.
3b. Konfigurasikan informasi dasar
Pada langkah Basic Information, konfigurasikan parameter berikut, lalu klik Next.
| Parameter | Deskripsi |
|---|---|
| Cluster Type | Pilih Kubernetes Clusters. |
| Application Source Type | Pilih Default. |
| Hosted Applications | Pilih bahasa pemrograman. Pilih Java untuk contoh ini. Untuk aplikasi PHP atau multibahasa, lihat Build PHP applications from source code and deploy them in ACK clusters. |
| Select Application | Pilih lingkungan runtime berdasarkan jenis aplikasi Anda. Lihat opsi di bawah. |
Opsi lingkungan runtime:
| Opsi | Kasus penggunaan | Parameter yang dapat dikonfigurasi |
|---|---|---|
| Java | Deploy aplikasi Dubbo atau Spring Boot dengan paket JAR universal | Java Environment |
| Tomcat | Deploy aplikasi Dubbo atau Spring dengan paket WAR universal | Java Environment, Container Version |
| EDAS-Container (HSF) | Deploy aplikasi High-Speed Service Framework (HSF) dengan paket WAR atau FatJar | Java Environment, Pandora Version, Ali-Tomcat Version |
Untuk penerapan berbasis gambar, lihat Use an image to deploy a Java microservices application in a Kubernetes cluster.
OpenJDK 17 kompatibel dengan Dubbo 2.7.14 ke atas atau Dubbo 3.0.6 ke atas. Lihat matriks kompatibilitas di bawah.
Matriks kompatibilitas OpenJDK 17
| Versi Dubbo | Versi Spring Boot | Versi klien Nacos | Panggilan API | Pemantauan ARMS | Daftar layanan |
|---|---|---|---|---|---|
| 2.7.14 | 2.7.9 | 1.4.4 | Didukung | Didukung | Didukung |
| 2.7.14 | 2.7.9 | 2.1.2 | Didukung | Didukung | Didukung |
| 2.7.14 | 2.7.9 | 2.2.0 | Didukung | Didukung | Didukung |
| 2.7.22 | 2.7.9 | 1.4.4 | Didukung | Didukung | Didukung |
| 2.7.22 | 2.7.9 | 2.1.2 | Didukung | Didukung | Didukung |
| 2.7.22 | 2.7.9 | 2.2.0 | Didukung | Didukung | Didukung |
| 3.0.6 | 2.7.9 | 1.4.4 | Didukung | Didukung | Didukung |
| 3.0.6 | 2.7.9 | 2.1.2 | Didukung | Didukung | Didukung |
| 3.0.6 | 2.7.9 | 2.2.0 | Didukung | Didukung | Didukung |
| 3.1.7 | 2.7.9 | 1.4.4 | Didukung | Didukung | Didukung |
| 3.1.7 | 2.7.9 | 2.1.2 | Didukung | Didukung | Didukung |
| 3.1.7 | 2.7.9 | 2.2.0 | Didukung | Didukung | Didukung |
3c. Konfigurasikan penerapan
Pada langkah Configurations, atur lingkungan, metode penerapan, dan parameter resource, lalu klik Next.
Pengaturan lingkungan dan kluster
| Parameter | Deskripsi |
|---|---|
| Microservice Namespace | Pilih namespace yang telah Anda buat. Default-nya adalah Default jika tidak ditentukan. Untuk membuatnya, klik Create Microservice Namespace. Lihat bagian "Create a namespace" pada Manage microservice namespaces. |
| Cluster | Pilih kluster ACK yang telah diimpor. Jika kluster belum diimpor, pilih This cluster is used for the first time in EDAS untuk mengimpornya selama pembuatan aplikasi. Kemudian, periksa apakah Alibaba Cloud Service Mesh telah diaktifkan. Impor pertama kali memerlukan waktu tambahan. |
| K8s Namespace | Pilih namespace Kubernetes untuk isolasi resource. Opsi: default (digunakan jika tidak ditentukan), kube-system (objek yang dibuat sistem), kube-public (dapat dibaca oleh semua pengguna, termasuk pengguna yang tidak diautentikasi). Untuk membuat namespace kustom, klik Create Kubernetes Namespace. Nama harus terdiri dari 1–63 karakter: huruf kecil, angka, dan tanda hubung (-), dimulai dan diakhiri dengan huruf atau angka. |
Kluster dan aplikasi tidak perlu berada dalam namespace layanan mikro yang sama.
Pengaturan aplikasi
| Parameter | Deskripsi |
|---|---|
| Application Name | Harus dimulai dengan huruf. Dapat berisi huruf, angka, dan tanda hubung (-), maksimal 36 karakter. |
| Application Description | Opsional. Maksimal 128 karakter. |
Paket penyebaran
| Parameter | Deskripsi |
|---|---|
| Source of Deployment Package | Pilih salah satu opsi berikut: |
Custom Program: Unggah paket JAR atau berikan URL paket.
Upload JAR Package: Pilih dan unggah paket lokal.
JAR Package Address: Masukkan URL paket penyebaran Anda.
Official Demo: Pilih jenis aplikasi demo — Spring Cloud Server Application, Spring Cloud Client Application, Dubbo Server Application, atau Dubbo Client Application.
Registri kontainer (hanya untuk kluster ACK)
Parameter Container Registry Repository Type hanya tersedia untuk aplikasi Java, Tomcat, atau EDAS-Container (HSF) di kluster ACK. Parameter ini tidak tersedia untuk kluster ACK Serverless.
Sebelum menggunakan registri kontainer, pastikan bahwa:
Komponen aliyun-acr-credential-helper telah diinstal
Untuk Container Registry Edisi Perusahaan, akses VPC telah dikonfigurasi
Pilih Container Registry Personal Edition atau Container Registry Enterprise Edition untuk menyimpan gambar yang dibuat. Tugas pembuatan gambar dijalankan di kluster Anda dengan aturan penjadwalan berikut:
| Label node atau taint | Perilaku |
|---|---|
edas.image.build=disable (label) | EDAS tidak menjadwalkan tugas build ke node-node ini |
edas.image.build=enable (label) | EDAS lebih memilih menjadwalkan tugas build ke node-node ini, tetapi mungkin juga menggunakan node tanpa label |
key=edas.image.build, effect=NoSchedule (taint) | Tugas build dapat mentoleransi taint ini |
Untuk mencegah tugas build berjalan di node tertentu, tambahkan label edas.image.build=disable. Untuk membuat node build khusus, tambahkan label edas.image.build=enable dan taint key=edas.image.build, effect=NoSchedule.
Batas resource default untuk satu tugas build gambar adalah 1 GB per core. Untuk menyesuaikan batas ini, lihat How do I adjust resource limits for image building?
Parameter Container Registry Edisi Perusahaan:
| Parameter | Deskripsi |
|---|---|
| Region of Container Registry | Pilih wilayah gambar Container Registry Anda. |
| Container Registry | Pilih gambar kontainer Anda. |
| Image Repository Namespace | Pilih namespace, atau klik + Create Namespace untuk membuatnya. |
Pengaturan resource dan runtime
| Parameter | Deskripsi |
|---|---|
| Version | Tentukan nomor versi kustom, atau klik Use Timestamp as Version Number untuk menghasilkannya. |
| Time Zone | Pilih zona waktu aplikasi. |
| OpenJDK Base Image | Hanya tersedia saat Java Environment diatur ke Custom OpenJDK pada langkah Informasi Dasar. Konfigurasikan sumber gambar: Jika Anda mengatur Alibaba Cloud Container Registry ke Current Account, konfigurasikan parameter Region, Container Registry, Image Repository Namespace, dan Image Repository Name, lalu pilih versi gambar. Jika Anda mengaturnya ke Other Alibaba Cloud Accounts, tentukan Full Image Address. Hanya JDK 7 dan JDK 8 yang didukung. Menggunakan versi JDK lain dapat menyebabkan exception pada fitur pemantauan aplikasi. Server EDAS menarik gambar dasar untuk membangun gambar aplikasi. Pastikan gambar dasar memiliki izin pull publik. |
| Total Pods | Jumlah Pod yang akan diterapkan. Maksimum tergantung pada kapasitas kluster. |
| Single-pod Resource Quota | Batas CPU, memori, dan penyimpanan sementara per Pod. Nilai 0 berarti tanpa batas. Nilai maksimum tergantung pada kapasitas kluster. |
3d. Konfigurasikan pengaturan lanjutan (opsional)
Pada langkah Advanced Settings, konfigurasikan salah satu hal berikut sesuai kebutuhan:
3e. Mulai penerapan
Klik Create Application. Pada langkah Creation Completed, klik Create Application lagi.
Pada kotak dialog Confirm Application Change Precheck, klik Start Precheck.
Tinjau hasil pemeriksaan awal dan klik Continue. Jika Anda mengubah item pemeriksaan awal apa pun, klik Check Again sebelum melanjutkan.
Verifikasi penerapan
Penerapan memerlukan beberapa menit. Untuk memantau kemajuan dan memastikan keberhasilan:
Buka halaman Change List untuk melacak status penerapan secara real time.
Setelah penerapan selesai, buka Application Management > Applications dan buka aplikasi Anda. Di halaman Application Overview, periksa status Pod.
Jika semua Pod menunjukkan status running, penerapan berhasil. Klik status Pod untuk melihat detail Deployments, pods, dan konfigurasi lanjutan untuk setiap instans aplikasi.
Langkah selanjutnya
Setelah menerapkan aplikasi, bind instance Classic Load Balancer (CLB) untuk mengeksposnya:
Akses Internet: Tambahkan instance CLB yang menghadap Internet agar pengguna eksternal dapat mengakses aplikasi melalui jaringan publik.
Akses internal: Tambahkan instance CLB akses internal agar layanan lain dalam Virtual Private Cloud (VPC) yang sama dapat mengakses aplikasi.
Untuk petunjuknya, lihat Bind CLB instances atau Reuse a CLB instance.