Container Compute Service (ACS) mendukung pembuatan aplikasi tanpa status menggunakan gambar kontainer, templat orkestrasi YAML, dan perintah kubectl. Topik ini menjelaskan cara membuat aplikasi tanpa status di kluster ACS dengan contoh aplikasi Nginx.
Konsol
Buat menggunakan gambar
Langkah 1: Konfigurasikan informasi dasar aplikasi
-
Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.
-
Pada halaman Deployments, klik Create with Image.
Pada wizard konfigurasi Basic information, tentukan informasi dasar untuk aplikasi Anda.
Configuration item
Description
Application name
Masukkan nama untuk aplikasi Anda.
Number of replicas
Jumlah Pod untuk aplikasi Anda. Nilai default: 2.
Workload
Pilih Stateless (Deployment).
Labels
Tambahkan label untuk mengidentifikasi aplikasi Anda.
Annotations
Tambahkan anotasi ke aplikasi Anda.
Instance type
Pilih tipe komputasi. Untuk informasi lebih lanjut tentang tipe komputasi, lihat Overview of ACS pod instances.
QoS type
Pilih tipe Quality of Service (QoS).
Klik Next untuk melanjutkan ke halaman wizard Container configuration.
Langkah 2: Konfigurasikan kontainer
Pada halaman wizard Container configuration, konfigurasikan gambar kontainer, sumber daya, port, variabel lingkungan, pemeriksaan kesehatan, siklus hidup, volume, dan log.
Untuk menambahkan beberapa kontainer ke Pod aplikasi Anda, klik Add container di sisi kanan tab Container 1.
Pada bagian Basic configuration, konfigurasikan pengaturan dasar kontainer.
Configuration item
Description
Image name
Pilih gambar.
Klik Select image untuk memilih gambar Anda.
Container Registry Enterprise Edition: Pilih gambar edisi perusahaan yang dihosting di Container Registry (ACR). Anda harus menentukan wilayah dan instans ACR tempat gambar berada. Untuk informasi lebih lanjut tentang ACR, lihat What Is Container Registry (ACR)?.
Container Registry Personal Edition (harus diaktifkan terlebih dahulu): Pilih gambar edisi pribadi yang dihosting di Container Registry (ACR). Anda harus menentukan wilayah tempat gambar berada dan instans ACR.
Artifact Center: Menyediakan gambar OS dasar, gambar runtime bahasa pemrograman, serta gambar terkait AI atau data besar. Contoh ini menggunakan gambar Nginx dari Artifact Center. Untuk informasi lebih lanjut tentang Artifact Center, lihat Artifact Center.
(Opsional) Atur kebijakan penarikan gambar.
Pilih kebijakan penarikan gambar dari daftar drop-down Image pull policy. Secara default, tidak ada kebijakan yang ditetapkan, dan Kubernetes menggunakan IfNotPresent.
Use local image if present (IfNotPresent): Jika gambar sudah ada secara lokal (sebelumnya telah ditarik ke host), gambar tersebut tidak akan ditarik lagi. Jika gambar tidak ada secara lokal, gambar tersebut akan ditarik.
Always pull image (Always): Tarik gambar setiap kali melakukan penerapan atau penskalaan. Jangan gunakan gambar lokal.
Use only local image (Never): Gunakan hanya gambar lokal.
(Opsional) Atur rahasia gambar.
Klik Set image secret untuk mengamankan gambar pribadi menggunakan rahasia.
Untuk instans Container Registry Personal Edition, Anda dapat menarik gambar kontainer dengan mengatur rahasia gambar. Untuk informasi lebih lanjut tentang pengaturan rahasia, lihat Manage secrets.
Untuk instans Container Registry Enterprise Edition, Anda dapat menarik gambar menggunakan komponen tanpa kata sandi. Untuk petunjuknya, lihat Pull ACR images without passwords.
Required resources
Atur kuota sumber daya untuk kontainer.
CPU: Tentukan permintaan dan batas sumber daya CPU untuk kontainer. Secara default, permintaan dan batas bernilai sama. Metode penagihan adalah bayar sesuai penggunaan. Jika Anda menggunakan templat YAML untuk mengatur batas sumber daya yang berbeda dari permintaan sumber daya, permintaan sumber daya akan secara otomatis disesuaikan agar sama dengan batas sumber daya. Untuk informasi lebih lanjut, lihat Resource specifications.
Memory: Tentukan permintaan dan batas sumber daya memori untuk kontainer. Secara default, permintaan dan batas bernilai sama. Metode penagihan adalah bayar sesuai penggunaan. Jika Anda menggunakan templat YAML untuk mengatur batas sumber daya yang berbeda dari permintaan sumber daya, permintaan sumber daya akan secara otomatis disesuaikan agar sama dengan batas sumber daya. Untuk informasi lebih lanjut, lihat Resource specifications.
Container startup command
(Opsional) Atur perintah startup kontainer.
stdin: Kirim input konsol ke kontainer.
tty: Gunakan konsol input standar sebagai input konsol kontainer.
CatatanBiasanya, Anda memilih kedua opsi stdin dan tty. Kombinasi ini mengikat terminal (tty) ke input standar (stdin) kontainer. Misalnya, program interaktif membaca input dari pengguna melalui stdin dan menampilkan output ke terminal.
Init container
(Opsional) Aktifkan opsi ini untuk membuat init container.
Init container menghalangi atau menunda startup kontainer aplikasi. Setelah init container berhasil dijalankan, kontainer aplikasi dalam Pod akan mulai berjalan secara paralel. Misalnya, Anda dapat memeriksa ketersediaan layanan yang menjadi dependensi. Init container dapat mencakup utilitas dan skrip instalasi yang tidak tersedia dalam gambar aplikasi. Alat-alat ini menginisialisasi lingkungan runtime kontainer aplikasi, seperti mengatur parameter kernel atau menghasilkan file konfigurasi. Untuk informasi lebih lanjut, lihat Init Container.
(Opsional) Pada bagian Port settings, klik Add untuk mengonfigurasi port kontainer.
Configuration item
Description
Name
Tentukan nama untuk port tersebut.
Container port
Tentukan nomor port yang akan dibuka. Nilai yang valid berkisar antara 1 hingga 65535.
Protocol
Mendukung TCP dan UDP.
(Opsional) Pada bagian Environment variables, klik Add untuk mengonfigurasi variabel lingkungan.
Konfigurasikan variabel lingkungan untuk Pod menggunakan pasangan kunci-nilai. Variabel lingkungan dapat digunakan untuk menambahkan flag lingkungan atau meneruskan konfigurasi. Untuk informasi lebih lanjut, lihat Pod Environment Variables.
Configuration item
Description
Type
Menentukan tipe variabel lingkungan.
Custom
Configuration item
Secret
Variable/variable reference
Resource reference
Item konfigurasi dan rahasia mendukung referensi ke semua file.
Contoh ini menggunakan rahasia. Pilih Secret sebagai tipe, lalu pilih rahasia target. Secara default, semua file dalam rahasia tersebut direferensikan.

File YAML yang sesuai juga mereferensikan seluruh rahasia tersebut.

Variable name
Nama variabel lingkungan.
Variable/variable reference
Atur nilai variabel referensi.
(Opsional) Pada bagian Health checks, aktifkan Liveness probe, Readiness probe, dan Startup probe sesuai kebutuhan.
Liveness: Digunakan untuk menentukan apakah kontainer berjalan secara normal. Jika sejumlah pemeriksaan tertentu gagal, kubelet akan me-restart kontainer tersebut. Pemeriksaan kelangsungan hidup dapat mendeteksi masalah seperti deadlock yang menyebabkan kontainer tetap dalam status berjalan tetapi gagal merespons.
Readiness: Digunakan untuk menentukan apakah kontainer siap menerima trafik. Pod hanya akan disambungkan ke backend layanan setelah pemeriksaan kesiapan berhasil.
Startup: Dieksekusi hanya saat kontainer dimulai untuk memeriksa apakah kontainer telah berhasil dimulai. Liveness Probe dan Readiness Probe hanya dieksekusi setelah pemeriksaan startup berhasil.
Untuk informasi lebih lanjut, lihat Configure Liveness, Readiness, and Startup Probes.
Configuration item
Description
HTTP request
Mengirim permintaan HTTP GET ke kontainer. Parameter berikut didukung:
Protocol: HTTP atau HTTPS.
Path: Jalur akses pada server HTTP.
Port: Nomor port yang terbuka atau nama port. Nilainya harus berada dalam rentang 1 hingga 65.535.
HTTP headers: Header kustom dalam permintaan HTTP. HTTP memungkinkan header duplikat. Anda dapat mengonfigurasi header menggunakan pasangan kunci-nilai.
Initial delay (seconds): initialDelaySeconds. Jumlah detik yang ditunggu sebelum pemeriksaan pertama dimulai setelah kontainer dijalankan. Nilai default adalah 3.
Period (seconds): periodSeconds. Interval antar pemeriksaan. Nilai default adalah 10. Nilai minimum adalah 1.
Timeout (seconds): timeoutSeconds. Durasi timeout pemeriksaan. Nilai default adalah 1. Nilai minimum adalah 1.
Healthy threshold: Jumlah minimum pemeriksaan berturut-turut yang berhasil agar kontainer dianggap sehat. Nilai default adalah 1. Nilai minimum adalah 1. Untuk pemeriksaan kelangsungan hidup, nilai ini harus 1.
Unhealthy threshold: Jumlah minimum pemeriksaan berturut-turut yang gagal agar kontainer dianggap tidak sehat. Nilai default adalah 3. Nilai minimum adalah 1.
TCP connection
Mengirim permintaan soket TCP ke kontainer. Kubelet mencoba membuka soket pada port yang ditentukan. Jika koneksi berhasil, kontainer dianggap sehat. Jika koneksi gagal, kontainer dianggap tidak sehat. Parameter berikut didukung:
Port: Nomor port yang terbuka atau nama port. Nilainya harus berada dalam rentang 1 hingga 65.535.
Initial delay (seconds): initialDelaySeconds. Jumlah detik yang ditunggu sebelum pemeriksaan pertama dimulai setelah kontainer dijalankan. Nilai default adalah 15.
Period (seconds): periodSeconds. Interval antar pemeriksaan. Nilai default adalah 10. Nilai minimum adalah 1.
Timeout (seconds): timeoutSeconds. Durasi timeout pemeriksaan. Nilai default adalah 1. Nilai minimum adalah 1.
Healthy threshold: Jumlah minimum pemeriksaan berturut-turut yang berhasil agar kontainer dianggap sehat. Nilai default adalah 1. Nilai minimum adalah 1. Untuk pemeriksaan kelangsungan hidup, nilai ini harus 1.
Unhealthy threshold: Jumlah minimum pemeriksaan berturut-turut yang gagal agar kontainer dianggap tidak sehat. Nilai default adalah 3. Nilai minimum adalah 1.
Command line
Menjalankan perintah di dalam kontainer untuk memeriksa kesehatannya. Parameter berikut didukung:
Command line: Perintah yang digunakan untuk memeriksa kesehatan kontainer.
Initial delay (seconds): initialDelaySeconds. Jumlah detik yang ditunggu sebelum pemeriksaan pertama dimulai setelah kontainer dijalankan. Nilai default adalah 5.
Period (seconds): periodSeconds. Interval antar pemeriksaan. Nilai default adalah 10. Nilai minimum adalah 1.
Timeout (seconds): timeoutSeconds. Durasi timeout pemeriksaan. Nilai default adalah 1. Nilai minimum adalah 1.
Healthy threshold: Jumlah minimum pemeriksaan berturut-turut yang berhasil agar kontainer dianggap sehat. Nilai default adalah 1. Nilai minimum adalah 1. Untuk pemeriksaan kelangsungan hidup, nilai ini harus 1.
Unhealthy threshold: Jumlah minimum pemeriksaan berturut-turut yang gagal agar kontainer dianggap tidak sehat. Nilai default adalah 3. Nilai minimum adalah 1.
(Opsional) Pada bagian Lifecycle, konfigurasikan siklus hidup kontainer.
Konfigurasikan perintah post-start, pre-stop, dan start untuk kontainer. Untuk informasi lebih lanjut, lihat Attach Handlers to Container Lifecycle Events.
Configuration item
Description
Start Execution
Menentukan perintah dan argumen yang dijalankan sebelum kontainer dimulai.
Post-start command
Menentukan perintah yang dijalankan setelah kontainer dimulai.
Stop Preprocessing
Menentukan perintah yang dijalankan sebelum kontainer dihentikan.
(Opsional) Pada bagian Volumes, sambungkan volume ke kontainer.
Penyimpanan lokal: Pasang ConfigMap, rahasia, dan direktori sementara ke jalur dalam kontainer. Untuk informasi lebih lanjut, lihat Volumes.
Penyimpanan cloud: Jenis volume yang didukung meliputi disk dan NAS. Untuk informasi lebih lanjut, lihat Storage overview.
(Opsional) Pada bagian Log configuration, konfigurasikan Collection configuration dan Custom tags.
Configuration item
Description
Collection configuration
Logstore: Buat Logstore di Simple Log Service untuk menyimpan log yang dikumpulkan.
Log path in container: Mendukung log stdout dan log teks.
Stdout: Mengumpulkan log output standar dari kontainer.
Text logs: Mengumpulkan log dari jalur tertentu dalam kontainer. Dalam contoh ini, semua log teks di bawah
/var/log/nginxakan dikumpulkan. Karakter wildcard didukung.
Custom tags
Tambahkan tag kustom. Saat dikonfigurasi, tag ini akan disertakan dalam output log kontainer dan membantu Anda memberi tag log untuk keperluan statistik serta penyaringan.
Klik Next untuk melanjutkan ke halaman wizard Advanced configuration.
Langkah 3: Selesaikan konfigurasi lanjutan
Pada halaman wizard Advanced configuration, konfigurasikan akses, penskalaan, penjadwalan, label, dan anotasi.
Pada bagian Access settings, konfigurasikan cara membuka Pod backend.
Anda dapat memilih cara membuka Pod backend. Contoh ini menggunakan Service ClusterIP dan Ingress untuk membuat aplikasi Nginx yang dapat diakses publik.
Konfigurasikan layanan: Klik Create di sebelah Service untuk mengonfigurasi pengaturan layanan.
Konfigurasikan Ingress: Klik Create di sebelah Ingress untuk mengatur aturan routing untuk Pod backend.
(Opsional) Pada bagian Scaling configuration, aktifkan Metric-based scaling untuk memenuhi kebutuhan aplikasi Anda di bawah beban yang bervariasi.
ACK mendukung penskalaan Pod berbasis metrik. Fitur ini secara otomatis menyesuaikan jumlah Pod berdasarkan penggunaan CPU dan memori.
CatatanUntuk mengaktifkan autoscaling, Anda harus menentukan permintaan sumber daya untuk kontainer. Jika tidak, autoscaling tidak akan berlaku.
Configuration item
Description
Metric
Mendukung penggunaan CPU dan memori. Harus sesuai dengan jenis sumber daya yang diminta.
Trigger condition
Persentase penggunaan sumber daya yang memicu penskalaan. Penskalaan dimulai ketika penggunaan melebihi nilai ini.
Maximum number of replicas
Jumlah maksimum Pod untuk workload ini.
Minimum number of replicas
Jumlah minimum Pod untuk workload ini.
ACK mendukung penskalaan Pod terjadwal. Fitur ini menambah atau mengurangi jumlah Pod pada waktu yang telah dijadwalkan. Sebelum mengaktifkan penjadwalan penskalaan, Anda harus menginstal komponen ack-kubernetes-cronhpa-controller. Untuk informasi lebih lanjut, lihat CronHPA.
(Opsional) Pada bagian Labels and annotations, klik Add untuk menambahkan label dan anotasi ke Pod.
Klik Create.
Langkah 4: Lihat informasi aplikasi
Setelah pembuatan berhasil, Anda akan diarahkan ke halaman sukses secara default. Klik View application details untuk menuju halaman detail Deployment.
Anda juga dapat melihat Deployment di halaman Stateless. Untuk membuka halaman detail, klik nama Deployment atau Actions > Details.
Buat menggunakan YAML
Saat menggunakan templat orkestrasi ACK, Anda harus mendefinisikan objek sumber daya yang dibutuhkan aplikasi Anda. Anda dapat menggunakan pemilih label dan mekanisme lain untuk menggabungkan objek-objek ini menjadi aplikasi yang lengkap.
Contoh ini menunjukkan cara membuat aplikasi Nginx menggunakan templat orkestrasi. Templat tersebut mencakup Deployment dan Service. Deployment membuat sumber daya Pod, sedangkan Service diikat ke Pod backend untuk membentuk aplikasi Nginx yang lengkap.
-
Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.
-
Pada halaman Deployments, klik Create from YAML di pojok kanan atas.
Pada halaman Create, konfigurasikan templat dan klik Create.
Sample template: ACS menyediakan contoh templat YAML Kubernetes untuk berbagai tipe sumber daya guna membantu Anda menerapkan sumber daya dengan cepat. Anda juga dapat menulis templat sendiri sesuai format YAML Kubernetes untuk menggambarkan sumber daya yang diinginkan.
Add workload: Anda dapat dengan cepat mendefinisikan templat YAML menggunakan fitur ini.
Use existing template: Anda dapat mengimpor templat orkestrasi yang sudah ada ke halaman konfigurasi templat.
Save template: Simpan templat orkestrasi yang telah Anda konfigurasikan.
Berikut adalah contoh templat YAML untuk aplikasi Nginx. Anda dapat menggunakan templat ini untuk dengan cepat membuat Deployment Nginx. Secara default, instans Server Load Balancer (SLB) akan dibuat.
CatatanACK mendukung orkestrasi YAML Kubernetes. Gunakan
---untuk memisahkan objek sumber daya. Hal ini memungkinkan Anda membuat beberapa sumber daya menggunakan satu templat.(Opsional) Saat memasang volume, file yang sudah ada di direktori mount akan ditimpa secara default. Untuk mempertahankan file tersebut, konfigurasikan parameter
subPath.
Setelah mengklik Create, status deployment akan ditampilkan.
kubectl
Anda dapat menggunakan perintah kubectl untuk membuat dan melihat aplikasi.
Sambungkan ke kluster. Untuk informasi lebih lanjut, lihat Connect to ACK clusters using kubectl atau Use kubectl on Cloud Shell to manage ACK clusters.
Jalankan perintah berikut untuk memulai kontainer. Dalam contoh ini, server web Nginx dijalankan.
kubectl create deployment nginx --image=registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latestJalankan perintah berikut untuk membuat Service untuk kontainer tersebut. Mengatur
--type=LoadBalancerakan membuat instans Alibaba Cloud Server Load Balancer (SLB) yang mengarahkan trafik ke kontainer Nginx.kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancerJalankan perintah berikut untuk menampilkan daftar kontainer Nginx yang sedang berjalan.
kubectl get pod |grep nginxOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE nginx-2721357637-d**** 1/1 Running 1 9h