All Products
Search
Document Center

Container Service for Kubernetes:Buat aplikasi tanpa status dari gambar

Last Updated:Aug 21, 2026

Beban kerja tanpa status tidak menyimpan data atau status—misalnya, NGINX. Anda dapat membuat aplikasi tanpa status dari gambar, templat, atau CLI. Saat menggunakan gambar privat, konfigurasikan Image Pull Secret di Konsol ACK demi keamanan. Topik ini menjelaskan cara membuat aplikasi tanpa status dari gambar di Konsol pada kluster ACK Serverless.

Prasyarat

Pastikan hal berikut:

Langkah 1: Konfigurasi pengaturan dasar

  1. Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.

  2. Di halaman Cluster, klik kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.

  3. Di halaman Deployments, klik Create from Image.

  4. Di halaman Basic Information, pilih namespace. Contoh ini menggunakan namespace default.

  5. Konfigurasikan pengaturan dasar.

    Parameter Deskripsi
    Name Masukkan nama untuk aplikasi.
    Replicas Tentukan jumlah Pod yang akan disediakan.
    Type Pilih jenis resource: Deployment, StatefulSet, Job, atau CronJob.
    Label Tambahkan label untuk mengidentifikasi aplikasi.
    Annotations Tambahkan anotasi ke aplikasi.
  6. Klik Next.

Langkah 2: Konfigurasi kontainer

Pada langkah Container, konfigurasikan gambar kontainer, sumber daya komputasi, port, variabel lingkungan, pemeriksaan kesehatan, siklus hidup, dan volume.

Klik Add Container untuk menambahkan lebih banyak kontainer.

Konfigurasi gambar

Pada bagian General, konfigurasikan pengaturan berikut:

Parameter Deskripsi
Image Name Pilih atau masukkan gambar kontainer. Lihat Pilih sumber gambar di bawah.
Required Resources Cadangkan CPU dan memori untuk kontainer. Mencegah gangguan akibat konflik sumber daya dan wajib untuk HPA.
Container Start Parameter stdin: meneruskan input dari Konsol ACK ke kontainer. tty: mengalokasikan pseudo-TTY sehingga kontainer menggunakan konsol sebagai input standar.: meneruskan parameter awal dari terminal virtual ke Konsol ACK.
Init Containers Buat init container untuk inisialisasi Pod. Lihat Init containers.

Pilih sumber gambar

Klik Select images. Sumber:

  • Container Registry Enterprise Edition: gambar dalam instans Container Registry Enterprise Edition. Pilih wilayah dan instans. Tidak perlu Secret.

  • Container Registry Personal Edition: gambar yang disimpan dalam instans Container Registry Personal Edition. Pilih wilayah dan instans.

  • Artifact Center: gambar OS dasar, gambar bahasa dasar, dan gambar AI/data besar yang dikelola oleh Alibaba Cloud dan OpenAnolis. Contoh ini menggunakan gambar NGINX. Lihat Ikhtisar artifact center.

    Untuk pertanyaan atau permintaan gambar, bergabunglah dengan grup DingTalk 33605007047.
  • Private registry: masukkan alamat gambar dalam format domainname/namespace/imagename:tag.

Image pull policy

Kebijakan Perilaku
IfNotPresent Gunakan gambar yang tersimpan di cache lokal jika tersedia; tarik dari registri jika tidak.
Always Tarik dari registri setiap kali aplikasi diterapkan atau diskalakan.
Never Gunakan hanya gambar yang tersimpan di cache lokal; jangan pernah menarik dari registri.
Jika tidak ada yang dipilih, kebijakan pull tidak diterapkan.

Set Image Pull Secret

Untuk menarik gambar dari registri privat (seperti Container Registry Personal Edition), klik Set Image Pull Secret dan pilih Secret. Lihat Manage Secrets. Tidak diperlukan Secret untuk Container Registry Enterprise Edition.

Konfigurasi port

Di bagian Ports, klik Add.

Field Deskripsi
Name Masukkan nama untuk port.
Container Port Masukkan nomor port (1–65535).
Protocol Pilih TCP atau UDP.

Konfigurasi variabel lingkungan

Pada bagian Environments, klik Add untuk mengonfigurasi variabel lingkungan.

Untuk menggunakan ConfigMap atau Secret sebagai sumber variabel lingkungan, buat terlebih dahulu. Lihat Manage ConfigMaps dan Manage Secrets.

Tetapkan Type ke salah satu: Custom, ConfigMaps, Secrets, Value/ValueFrom, atau ResourceFieldRef. Memilih ConfigMap atau Secret akan meneruskan semua data dalam resource yang dipilih ke kontainer sebagai variabel lingkungan.

Contoh ini menggunakan Secrets: pilih Secrets dari daftar Type, lalu pilih Secret dari Value/ValueFrom. Semua data dalam Secret yang dipilih diteruskan sebagai variabel lingkungan.

yaml

Konfigurasi pemeriksaan kesehatan

Pada bagian Health Check, aktifkan probe sesuai kebutuhan:

Probe Tujuan Kapan digunakan
Liveness Mendeteksi apakah kontainer berjalan dengan benar; mulai ulang jika tidak. Selalu konfigurasikan untuk kontainer berjalan lama.
Readiness Menentukan apakah kontainer siap menerima traffic. Gunakan ketika aplikasi memerlukan waktu pemanasan sebelum melayani permintaan.
Startup Memeriksa apakah aplikasi telah dimulai; menonaktifkan probe lain hingga berhasil. Gunakan untuk aplikasi dengan waktu inisialisasi panjang.
Probe startup memerlukan Kubernetes 1.18 atau lebih baru.

Setiap probe mendukung jenis permintaan berikut:

HTTP — mengirim permintaan HTTP untuk memeriksa kesehatan kontainer.

Parameter Deskripsi Bawaan
Protocol HTTP atau HTTPS.
Path Path HTTP pada server.
Port Nomor atau nama port yang diekspos oleh kontainer (1–65535).
HTTP Header Header kustom dalam pasangan kunci-nilai; duplikasi diperbolehkan.
Initial Delay (s) Detik yang ditunggu setelah kontainer dimulai sebelum probe pertama (initialDelaySeconds). Liveness: 3; TCP: 15; Command: 5
Period (s) Interval antar probe (periodSeconds); minimum 1. Nilai lebih rendah mendeteksi kegagalan lebih cepat tetapi meningkatkan beban probe. 10
Timeout (s) Waktu sebelum probe timeout (timeoutSeconds); minimum 1. 1
Healthy Threshold Jumlah keberhasilan berturut-turut yang diperlukan agar kontainer dianggap sehat. Harus 1 untuk probe liveness. 1
Unhealthy Threshold Jumlah kegagalan berturut-turut yang diperlukan agar kontainer dianggap tidak sehat. Nilai lebih tinggi mentoleransi kegagalan sementara; nilai lebih rendah memicu restart lebih cepat. 3

TCP — membuka soket TCP untuk memeriksa kesehatan kontainer. Parameter sama seperti HTTP kecuali Protocol, Path, dan HTTP Header.

Command — menjalankan perintah di dalam kontainer untuk memeriksa kesehatan. Mendukung Command, Initial Delay, Period, Timeout, Healthy Threshold, dan Unhealthy Threshold.

Konfigurasi siklus hidup

Pada bagian Lifecycle, konfigurasikan kait siklus hidup:

  • Start: dijalankan sebelum kontainer dimulai.

  • Post Start: dijalankan setelah kontainer dimulai.

  • Pre Stop: dijalankan sebelum kontainer dihentikan.

Lihat Mengonfigurasi siklus hidup Kontainer.

Konfigurasi volume

Pada bagian Volume, tambahkan volume penyimpanan:

  • Volume penyimpanan on-premises

  • PVC (PersistentVolumeClaim)

  • NAS (Penyimpanan File NAS)

  • Disk

Lihat Menggunakan volume disk yang diprovisikan secara statis, Menggunakan volume disk yang diprovisikan secara dinamis, dan Memasang volume NAS yang diprovisikan secara statis.

Konfigurasi pengumpulan log

Pada bagian Log, konfigurasikan pengumpulan log. Lihat Buat aplikasi dari gambar dan konfigurasikan Simple Log Service untuk mengumpulkan log aplikasi.

Klik Next.

Langkah 3: Konfigurasi pengaturan lanjutan

Pada langkah Advanced, konfigurasikan kontrol akses, penskalaan, label, dan anotasi.

Konfigurasi kontrol akses

Pada bagian Access Control, pilih cara mengekspos Pod aplikasi.

Aplikasi internal: buat Service ClusterIP atau NodePort untuk komunikasi intra-kluster.

Aplikasi eksternal: ekspos aplikasi ke internet:

  • LoadBalancer Service: atur tipe Service ke Server Load Balancer. Pilih atau buat instans SLB untuk mengarahkan traffic eksternal.

  • Ingress: gunakan sumber daya Ingress untuk mengarahkan lalu lintas HTTP/HTTPS ke Service. Lihat Ingress.

Contoh ini membuat Service ClusterIP dan Ingress untuk mengekspos aplikasi NGINX.

Buat Layanan

Klik Create di samping Services dan konfigurasikan parameter berikut:

Parameter Deskripsi
Name Masukkan nama untuk Service. Contoh ini menggunakan nginx-svc.
Type Contoh ini menggunakan Cluster IP.Server Load Balancer. Opsi: Cluster IP, Server Load Balancer, Node Port.
Port Mapping Petakan port Service ke port kontainer. Contoh ini menggunakan Service Port 80 dan Container Port 80.
External Traffic Policy Local: mengarahkan traffic hanya ke node tempat Service berjalan. Cluster: mengarahkan traffic ke Pod di node mana pun. Berlaku hanya untuk tipe NodePort dan Server Load Balancer.
Annotations Tambahkan anotasi konfigurasi SLB. Misalnya, service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20 membatasi bandwidth hingga 20 Mbit/s. Lihat Use annotations to configure CLB instances.
Label Tambahkan label untuk mengidentifikasi Service.
Saat menggunakan instans SLB:
Listener pada instans SLB yang sudah ada akan menimpa listener Service.
Instans SLB yang dibuat bersama Service tidak dapat digunakan kembali oleh Service lain. Hanya instans SLB yang dibuat secara manual di Konsol atau melalui API yang dapat dibagikan.
Service yang berbagi instans SLB yang sama harus menggunakan port frontend berbeda untuk menghindari konflik.
Jangan ubah nama listener atau nama kelompok vServer pada instans SLB yang dibagikan, karena ACK menggunakannya sebagai pengenal unik.
Instans SLB tidak dapat dibagikan lintas kluster.

Buat Ingress

Klik Create di samping Ingresses dan konfigurasikan parameter berikut:

Parameter Deskripsi
Name Masukkan nama untuk Ingress. Contoh ini menggunakan nginx-ingress.
Rule Tentukan aturan routing: Domain (contoh ini menggunakan domain pengujian foo.bar.com), Path (default /), Services (pilih nginx-svc), dan EnableTLS.
Weight Atur bobot traffic untuk setiap Service dalam path tersebut. Default: 100.
Canary Release Aktifkan canary release. Disarankan: Open Source Solution.
Ingress Class Tentukan kelas Ingress.
Annotations Tambahkan Anotasi Ingress. Lihat Annotations.
Labels Tambahkan label untuk mendeskripsikan Ingress.
Penting

Setiap Service hanya dapat memiliki satu Ingress. Contoh ini menggunakan nama host virtual sebagai domain uji. Tambahkan IP Ingress ke file hosts Anda. Untuk menemukannya, buka halaman detail aplikasi > tab Access Method > kolom External Endpoint. Di produksi, gunakan domain dengan Pendaftaran ICP.

101.37.xx.xx   foo.bar.com    # Ganti dengan alamat IP Ingress sebenarnya

Setelah membuat Service dan Ingress, keduanya muncul di bagian Access Control. Klik Update atau Delete untuk memodifikasinya.

Konfigurasi penskalaan otomatis

Pada bagian Scaling, konfigurasikan Horizontal Pod Autoscaler (HPA) atau CronHPA.

HPA memerlukan Required Resources yang dikonfigurasi di Langkah 2.

HPA secara otomatis menskalakan Pod berdasarkan penggunaan CPU atau memori:

Parameter Deskripsi
Metric Pilih CPU Usage atau Memory Usage. Harus sesuai dengan jenis resource yang dikonfigurasi di Required Resources.
Condition Ambang batas penggunaan yang memicu skala keluar. Misalnya, CPU 70% berarti HPA menambah Pod saat penggunaan rata-rata melebihi 70%.
Max. Replicas Jumlah maksimum Pod yang dapat diskalakan oleh aplikasi.
Min. Replicas Jumlah minimum Pod yang harus selalu berjalan.

CronHPA juga didukung untuk penskalaan berbasis penjadwalan.

Tambahkan label dan anotasi

Pada bagian Labels,Annotations, klik Add.

  • Pod Labels: label untuk mengidentifikasi Pod.

  • Pod Annotations: anotasi untuk Pod.

Klik Create.

Langkah 4: Verifikasi penerapan

Verifikasi bahwa Deployment, Service, dan aplikasi berjalan dengan benar.

Periksa Deployment

Di langkah Complete, klik View Details. Di halaman Deployments, pastikan aplikasi bernama serverless-app-svc muncul.

Deployment list

Periksa Service

Di panel navigasi kiri, pilih Network > Services. Pastikan Service bernama serverless-app-svc muncul dalam daftar.

Service list

Akses aplikasi

Buka endpoint eksternal atau nama domain di browser untuk mengunjungi halaman selamat datang NGINX.

nginx
Penting
  • Tipe Service harus Server Load Balancer agar dapat diakses melalui browser.

  • Jika menggunakan foo.bar.com, tambahkan IP Ingress ke file hosts seperti dijelaskan di Buat Ingress.

Langkah berikutnya