全部产品
Search
文档中心

Container Service for Kubernetes:Buat Aplikasi Tanpa Status dari Sebuah Image

更新时间:Jul 02, 2025

Deployment tidak menyimpan data atau status apa pun, seperti Layanan NGINX. Aplikasi tanpa status dapat dibuat menggunakan sebuah image, template orkestrasi, atau perintah kubectl. Saat membuat aplikasi dari image pribadi, Anda dapat mengatur Secret untuk image pribadi di konsol Container Service for Kubernetes (ACK) untuk memastikan keamanan image. Topik ini menjelaskan cara membuat aplikasi tanpa status dengan menggunakan image di konsol ACK.

Prasyarat

Sebuah kluster ACK Serverless telah dibuat. Untuk informasi lebih lanjut, lihat Buat Sebuah Kluster ACK Serverless.

Langkah 1: Konfigurasikan pengaturan dasar

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

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel sebelah kiri, pilih Workloads > Deployments.

  3. Di pojok kanan atas halaman Deployments, klik Create from Image.

  4. Di halaman wizard Basic Information, konfigurasikan pengaturan dasar.

    Sebelum mengonfigurasi Deployment, pilih namespace di bagian atas halaman. Dalam contoh ini, namespace default dipilih, dan jenis aplikasi diatur ke Deployments.

    Parameter

    Deskripsi

    Name

    Masukkan nama untuk aplikasi.

    Replicas

    Tentukan jumlah pod yang disediakan untuk aplikasi.

    Type

    Jenis objek sumber daya yang ingin Anda buat. Nilai valid: Deployment, StatefulSet, Job, dan CronJob.

    Label

    Tambahkan label ke aplikasi untuk mengidentifikasi aplikasi tersebut.

    Annotations

    Tambahkan anotasi ke aplikasi.

  5. Klik Next. Lanjutkan ke langkah Container.

Langkah 2: Konfigurasikan container

Di langkah Container, lengkapi konfigurasi container untuk aplikasi. Konfigurasi mencakup image container, sumber daya komputasi, port container, variabel lingkungan, pemeriksaan kesehatan, siklus hidup, dan volume.

Catatan

Di bagian atas langkah Container, klik Add Container untuk menambahkan lebih banyak container untuk aplikasi.

  1. Di bagian General, lengkapi konfigurasi dasar container.

    Parameter

    Deskripsi

    Image Name

    • Select images

      Anda dapat mengklik Select images untuk memilih sebuah image. Jenis-jenis image berikut didukung:

      • Container Registry Enterprise Edition: Pilih image yang disimpan di instance Container Registry Enterprise Edition. Anda harus memilih wilayah dan instance Container Registry tempat image tersebut berada. Untuk informasi lebih lanjut tentang Container Registry, lihat Apa itu Container Registry?

      • Container Registry Personal Edition: Pilih image yang disimpan di instance Container Registry Personal Edition. Anda harus memilih wilayah dan instance Container Registry tempat image tersebut berada.

      • Artifact Center: Pusat artifact berisi image sistem operasi dasar, image bahasa dasar, dan image terkait AI serta big data untuk kontainerisasi aplikasi. Dalam contoh ini, image NGINX dipilih. Untuk informasi lebih lanjut, lihat Ikhtisar pusat artifact.

        Catatan

        Pusat artifact dari Container Registry menyediakan image dasar yang diperbarui dan ditambal oleh Alibaba Cloud atau OpenAnolis. Jika Anda memiliki persyaratan lain atau pertanyaan, bergabunglah dengan grup DingTalk (ID 33605007047) untuk meminta dukungan teknis.

      Anda juga dapat memasukkan alamat image yang disimpan di registry pribadi. Alamat image harus ditentukan dalam format berikut: domainname/namespace/imagename:tag.

    • Image Pull Policy

      Kebijakan untuk menarik image. Nilai valid:

      • IfNotPresent: Jika image yang ingin Anda tarik ditemukan di mesin lokal Anda, image di mesin lokal Anda digunakan. Jika tidak, ACK menarik image dari registry image.

      • Always: ACK menarik image dari Container Registry setiap kali aplikasi diterapkan atau diperluas.

      • Never: ACK hanya menggunakan image di mesin lokal Anda.

      Catatan

      Jika Anda memilih Image Pull Policy, tidak ada kebijakan penarikan image yang diterapkan secara default.

    • Set Image Pull Secret

      Anda dapat mengklik Set Image Pull Secret untuk mengatur Secret untuk menarik image dari registry pribadi.

      • Anda dapat menggunakan Secret untuk menarik image dari instance Container Registry Personal Edition. Untuk informasi lebih lanjut tentang cara mengatur Secret, lihat Kelola Secret.

      • Anda dapat menarik image tanpa menggunakan Secret dari instance Container Registry Enterprise Edition.

    Required Resources

    Jumlah CPU dan memory yang dicadangkan untuk aplikasi. Sumber daya tersebut eksklusif untuk container aplikasi. Ini mencegah aplikasi menjadi tidak tersedia saat layanan atau proses lain bersaing untuk mendapatkan sumber daya komputasi.

    Container Start Parameter

    • stdin: melewati input di konsol ACK ke container.

    • tty: melewati parameter awal yang didefinisikan di terminal virtual ke konsol ACK.

    Init Containers

    Jika Anda memilih Init Containers, sebuah init container akan dibuat. Init container menyediakan alat untuk manajemen pod. Untuk informasi lebih lanjut, lihat Init Containers.

  2. Di bagian Ports, klik Add untuk menambahkan port container.

    • Name: Masukkan nama untuk port kontainer.

    • Container Port: Masukkan nomor port yang ingin Anda buka. Nilai valid: 1 hingga 65535.

    • Protocol: TCP dan UDP didukung.

  3. Di bagian Environments, klik Add untuk mengonfigurasi variabel lingkungan.

    Catatan

    Untuk mengonfigurasi variabel lingkungan, pastikan bahwa ConfigMaps atau Secrets yang sesuai telah dibuat. Untuk informasi lebih lanjut, lihat Kelola ConfigMaps dan Kelola Secrets.

    Anda dapat mengonfigurasi variabel lingkungan dalam pasangan kunci-nilai untuk pod. Variabel lingkungan digunakan untuk menerapkan konfigurasi pod ke container. Untuk informasi lebih lanjut, lihat Variabel Pod.

    • Type: Tentukan tipe variabel lingkungan. Nilai valid: Custom, ConfigMaps, Secrets, Value/ValueFrom, dan ResourceFieldRef. Jika Anda memilih ConfigMaps atau Secrets, Anda dapat melewatkan semua data di ConfigMap atau Secret yang dipilih ke variabel lingkungan container. Dalam contoh ini, Secrets dipilih.

      Pilih Secrets dari daftar drop-down Tipe dan pilih Secret dari daftar drop-down Value/ValueFrom. Secara default, semua data di Secret yang dipilih dilewatkan ke variabel lingkungan.

      Dalam kasus ini, file YAML yang digunakan untuk menerapkan aplikasi berisi pengaturan yang merujuk semua data di Secret yang ditentukan.yaml

    • Variable Key: Tentukan nama variabel lingkungan.

    • Value/ValueFrom: Pilih Secret dari mana variabel lingkungan merujuk data.

  4. Di bagian Health Check, aktifkan probe liveness dan readiness sesuai kebutuhan.

    Parameter

    Deskripsi

    Liveness: Periksa apakah container berjalan sesuai harapan. Setelah beberapa kegagalan berturut-turut, kubelet memulai ulang container. Probe liveness membantu mengidentifikasi masalah di mana container tetap berjalan tetapi menjadi tidak responsif, seperti deadlock.

    Tipe Permintaan: HTTP

    Mengirim permintaan HTTP ke container untuk memeriksa secara berkala apakah container berjalan sesuai harapan.

    • Protocol: HTTP atau HTTPS.

    • Path: path HTTP yang diminta pada server.

    • Port: nomor atau nama port yang diekspos oleh container. Nomor port harus antara 1 hingga 65535.

    • HTTP Header: header kustom dalam permintaan HTTP. Header duplikat diperbolehkan. Anda dapat menentukan header HTTP dalam pasangan kunci-nilai.

    • Initial Delay (s): bidang initialDelaySeconds di file YAML. Bidang ini menentukan waktu tunggu sebelum probe pertama dilakukan setelah container dimulai. Nilai default: 3. Unit: detik.

    • Period (s): bidang periodSeconds di file YAML. Bidang ini menentukan interval di mana probe dilakukan. Nilai default: 10. Nilai minimum: 1. Unit: detik.

    • Timeout (s): bidang timeoutSeconds di file YAML. Bidang ini menentukan waktu setelah mana probe habis waktu. Nilai default: 1. Nilai minimum: 1.

    • Healthy Threshold: jumlah keberhasilan berturut-turut minimum yang harus terjadi sebelum container dianggap sehat setelah probe gagal. Nilai default: 1. Nilai minimum: 1. Untuk probe liveness, parameter ini harus diatur ke 1.

    • Unhealthy Threshold: jumlah kegagalan berturut-turut minimum yang harus terjadi sebelum container dianggap tidak sehat setelah berhasil. Nilai default: 3. Nilai minimum: 1.

    Tipe Permintaan: TCP

    Mengirim soket TCP ke container. kubelet mencoba membuka soket pada port yang ditentukan. Jika koneksi dapat dibuat, container dianggap sehat. Jika tidak, container dianggap tidak sehat.

    • Port: nomor atau nama port yang diekspos oleh container. Nomor port harus antara 1 hingga 65535.

    • Initial Delay (s): bidang initialDelaySeconds di file YAML. Bidang ini menentukan waktu tunggu sebelum probe pertama dilakukan setelah container dimulai. Nilai default: 15. Unit: detik.

    • Period (s): bidang periodSeconds di file YAML. Bidang ini menentukan interval di mana probe dilakukan. Nilai default: 10. Nilai minimum: 1. Unit: detik.

    • Timeout (s): bidang timeoutSeconds di file YAML. Bidang ini menentukan waktu setelah mana probe habis waktu. Nilai default: 1. Nilai minimum: 1.

    • Healthy Threshold: jumlah keberhasilan berturut-turut minimum yang harus terjadi sebelum container dianggap sehat setelah probe gagal. Nilai default: 1. Nilai minimum: 1. Untuk probe liveness, parameter ini harus diatur ke 1.

    • Unhealthy Threshold: jumlah kegagalan berturut-turut minimum yang harus terjadi sebelum container dianggap tidak sehat setelah berhasil. Nilai default: 3. Nilai minimum: 1.

    Tipe Permintaan: perintah

    Menjalankan perintah probe di container untuk memeriksa status kesehatan container.

    • Command: perintah probe yang dijalankan untuk memeriksa status kesehatan container.

    • Initial Delay (s): bidang initialDelaySeconds di file YAML. Bidang ini menentukan waktu tunggu sebelum probe pertama dilakukan setelah container dimulai. Nilai default: 5. Unit: detik.

    • Period (s): bidang periodSeconds di file YAML. Bidang ini menentukan interval di mana probe dilakukan. Nilai default: 10. Nilai minimum: 1. Unit: detik.

    • Timeout (s): bidang timeoutSeconds di file YAML. Bidang ini menentukan waktu setelah mana probe habis waktu. Nilai default: 1. Nilai minimum: 1.

    • Healthy Threshold: jumlah keberhasilan berturut-turut minimum yang harus terjadi sebelum container dianggap sehat setelah probe gagal. Nilai default: 1. Nilai minimum: 1. Untuk probe liveness, parameter ini harus diatur ke 1.

    • Unhealthy Threshold: jumlah kegagalan berturut-turut minimum yang harus terjadi sebelum container dianggap tidak sehat setelah berhasil. Nilai default: 3. Nilai minimum: 1.

    Readiness: Probe readiness digunakan untuk menentukan apakah container siap menerima trafik. Pod hanya dilampirkan ke backend Service setelah melewati pemeriksaan readiness.

    Startup: Probe startup dijalankan selama inisialisasi container untuk memverifikasi startup yang berhasil. Probe liveness dan readiness berikutnya hanya dimulai setelah probe startup berhasil.

    Catatan

    Probe startup didukung hanya di Kubernetes 1.18 dan versi lebih baru.

  5. Di bagian Siklus Hidup, konfigurasikan siklus hidup container.

    Anda dapat menentukan parameter berikut untuk mengonfigurasi siklus hidup container: Mulai, Pasca Mulai, dan Pra Berhenti. Untuk informasi lebih lanjut, lihat Konfigurasikan siklus hidup container.

    • Start: Tentukan perintah dan parameter yang berlaku sebelum container mulai.

    • Post Start: Tentukan perintah yang berlaku setelah container mulai.

    • Pre Stop: Tentukan perintah yang berlaku sebelum container berhenti.

  6. Di bagian Volume, tambahkan volume penyimpanan lokal, klaim volume persisten (PVC), atau File Storage NAS (NAS) volumes.

    Jenis-jenis volume penyimpanan berikut didukung:

    • Volume penyimpanan lokal

    • PVC

    • NAS

    • Disk

    Untuk informasi lebih lanjut, lihat Gunakan volume disk yang diprovision secara statis, Gunakan volume disk yang diprovision secara dinamis, dan Mount volume NAS yang diprovision secara statis.

  7. Di bagian Log, konfigurasikan parameter terkait log. Untuk informasi lebih lanjut, lihat Metode 1: Buat aplikasi dari sebuah image dan konfigurasikan Simple Log Service untuk mengumpulkan log aplikasi.

  8. Klik Next untuk mengonfigurasi pengaturan lanjutan.

Langkah 3: Konfigurasikan pengaturan lanjutan

Di langkah Advanced, konfigurasikan kontrol akses, konfigurasi penskalaan, label, dan anotasi.

  1. Di bagian Access Control, konfigurasikan cara mengekspos pod backend.

    Catatan

    Anda dapat mengonfigurasi pengaturan kontrol akses berikut berdasarkan kebutuhan bisnis Anda:

    • Aplikasi internal: Untuk aplikasi yang berjalan di dalam kluster, Anda dapat membuat Service tipe ClusterIP atau NodePort untuk mengaktifkan komunikasi internal.

    • Aplikasi eksternal: Untuk aplikasi yang diekspos ke Internet, Anda dapat mengonfigurasi kontrol akses dengan menggunakan salah satu metode berikut:

      • Buat Service LoadBalancer. Saat Anda membuat Service, atur Tipe ke Server Load Balancer. Anda dapat memilih atau membuat instance Server Load Balancer (SLB) untuk Service dan menggunakan Service tersebut untuk mengekspos aplikasi Anda ke Internet.

      • Buat Ingress dan gunakannya untuk mengekspos aplikasi Anda ke Internet. Untuk informasi lebih lanjut, lihat Ingress.

    Anda dapat menentukan bagaimana pod backend diekspos ke Internet. Dalam contoh ini, Service ClusterIP dan Ingress dibuat untuk mengekspos aplikasi NGINX ke Internet.

    • Klik Create di sisi kanan Services. Di kotak dialog Buat Service, konfigurasikan parameter berikut.

      Parameter

      Deskripsi

      Nama

      Masukkan nama untuk Service. Dalam contoh ini, nginx-svc digunakan.

      Tipe

      Tipe Service. Parameter ini menentukan cara Service diakses. Dalam contoh ini, pilih Server Load Balancer.

      • Cluster IP: Service tipe ClusterIP. Jenis Service ini mengekspos Service dengan menggunakan alamat IP internal kluster. Jika Anda memilih tipe ini, Service hanya dapat diakses di dalam kluster. Ini adalah tipe default.

        Catatan

        Kotak centang Headless Service hanya muncul ketika Anda mengatur Type ke Cluster IP.

      • Server Load Balancer: Service tipe LoadBalancer. Jenis Service ini mengekspos Service dengan menggunakan instance Server Load Balancer (SLB). Jika Anda memilih tipe ini, Anda dapat mengaktifkan akses internal atau eksternal ke Service. Instance SLB dapat digunakan untuk merutekan permintaan ke Service NodePort dan ClusterIP.

        • Buat Instance SLB: Anda dapat mengklik Modify untuk mengubah spesifikasi instance SLB.

        • Gunakan Instance SLB yang Ada: Anda dapat memilih instance SLB yang ada.

        Catatan

        Anda dapat membuat instance SLB atau menggunakan instance SLB yang ada. Anda juga dapat mengaitkan instance SLB dengan beberapa Service. Namun, Anda harus memperhatikan batasan berikut:

        • Jika Anda menggunakan instance SLB yang ada, pendengar instance SLB akan menimpa pendengar Service.

        • Jika instance SLB dibuat bersamaan dengan Service, Anda tidak dapat menggunakan kembali instance SLB ini saat membuat Service lain. Jika tidak, instance SLB mungkin dihapus. Hanya instance SLB yang dibuat secara manual di konsol SLB atau dengan memanggil API yang dapat digunakan untuk mengekspos beberapa Service.

        • Service yang berbagi instance SLB yang sama harus menggunakan port frontend yang berbeda. Jika tidak, konflik port mungkin terjadi.

        • Jika beberapa Service berbagi instance SLB yang sama, Anda harus menggunakan nama pendengar dan nama grup vServer sebagai pengenal unik di Kubernetes. Jangan ubah nama pendengar atau grup vServer.

        • Anda tidak dapat berbagi instance SLB di seluruh kluster.

      Pemetaan Port

      Tentukan port Service dan port container. Port container harus sama dengan yang diekspos di pod backend. Contoh:

      Service Port: 80

      Container Port: 80

      Kebijakan Trafik Eksternal

      • Lokal: Trafik dirutekan hanya ke node tempat Service diterapkan.

      • Kluster: Trafik dapat dirutekan ke pod di node lain.

      Catatan

      Parameter External Traffic Policy hanya tersedia jika Anda mengatur Tipe ke Node Port atau Server Load Balancer.

      Anotasi

      Tambahkan anotasi ke Service untuk memodifikasi konfigurasi instance SLB. Sebagai contoh, service.beta.kubernetes.io/alicloud-loadbalancer-bandwidth:20 menentukan bahwa bandwidth maksimum Service adalah 20 Mbit/s. Ini membatasi jumlah trafik yang mengalir melalui Service. Untuk informasi lebih lanjut, lihat Gunakan anotasi untuk mengonfigurasi instance CLB.

      Label

      Tambahkan label ke Service untuk mengidentifikasi Service.

    • Untuk membuat Ingress, klik Create di sisi kanan Ingresses. Di kotak dialog Buat, atur parameter.

      Untuk informasi lebih lanjut, lihat Buat Ingress.

      Penting

      Saat Anda membuat aplikasi dari sebuah image, Anda hanya dapat membuat Ingress untuk satu Service. Dalam contoh ini, nama host virtual digunakan sebagai nama domain uji. Anda harus menambahkan pemetaan dalam format berikut ke file hosts: Titik akhir eksternal Ingress + Nama domain Ingress. Dalam skenario nyata, gunakan nama domain yang memiliki nomor ICP (Internet Content Provider).

      101.37.xx.xx   foo.bar.com    # Alamat IP Ingress.

      Untuk mendapatkan alamat IP Ingress, buka halaman detail aplikasi dan klik tab Access Method. Alamat IP yang ditampilkan di kolom External Endpoint adalah alamat IP Ingress.

      Parameter

      Deskripsi

      Name

      Masukkan nama untuk Ingress. Dalam contoh ini, nginx-ingress digunakan.

      Rule

      Aturan Ingress digunakan untuk mengaktifkan akses ke Service tertentu di kluster. Untuk informasi lebih lanjut, lihat Buat Ingress.

      • Domain: Masukkan nama domain Ingress. Dalam contoh ini, nama domain uji foo.bar.com digunakan.

      • Path: Masukkan URL Service. Path default adalah path root /. Path default digunakan dalam contoh ini. Setiap path dikaitkan dengan Service backend. SLB hanya merutekan trafik ke Service backend jika permintaan masuk sesuai dengan nama domain dan path.

      • Services: Pilih Service dan port Service. Dalam contoh ini, nginx-svc digunakan.

      • EnableTLS: Centang kotak ini untuk mengaktifkan TLS. Untuk informasi lebih lanjut, lihat Konfigurasi lanjutan NGINX Ingress.

      Weight

      Atur bobot untuk setiap Service di path. Setiap bobot dihitung sebagai nilai persentase. Nilai default: 100.

      Canary Release

      Aktifkan atau nonaktifkan fitur rilis canary. Kami merekomendasikan Anda memilih Solusi Open Source.

      Ingress Class

      Tentukan kelas Ingress.

      Annotations

      Klik Add dan masukkan kunci dan nilai. Untuk informasi lebih lanjut tentang anotasi Ingress, lihat Anotasi.

      Labels

      Tambahkan label untuk menjelaskan karakteristik Ingress.

    Anda dapat menemukan Service dan Ingress yang dibuat di bagian Access Control. Anda dapat mengklik Update atau Delete untuk mengubah konfigurasi.

  2. Di bagian Scaling, pilih HPA dan CronHPA berdasarkan kebutuhan bisnis Anda.

    ACK mendukung penskalaan otomatis pod. Ini memungkinkan Anda secara otomatis menyesuaikan jumlah pod berdasarkan penggunaan CPU dan memori.

    Catatan

    Untuk mengaktifkan HPA, Anda harus mengonfigurasi sumber daya yang dibutuhkan oleh container. Jika tidak, HPA tidak akan berlaku.

    Parameter

    Deskripsi

    Metric

    Pilih Penggunaan CPU atau Penggunaan Memori. Jenis sumber daya yang dipilih harus sama dengan yang ditentukan di bidang Sumber Daya yang Dibutuhkan.

    Condition

    Tentukan ambang batas penggunaan sumber daya. HPA memicu acara peningkatan skala saat ambang batas terlampaui.

    Max. Replicas

    Tentukan jumlah maksimum pod replika ke mana aplikasi dapat diskalakan.

    Min. Replicas

    Tentukan jumlah minimum pod replika yang harus berjalan.

  3. Di bagian Labels,Annotations, klik Add untuk menambahkan label dan anotasi ke pod.

    • Label Pod: Tambahkan label ke pod. Label digunakan untuk mengidentifikasi aplikasi.

    • Anotasi Pod: Tambahkan anotasi ke pod.

  4. Klik Create.

Langkah 4: Periksa aplikasi

Di langkah Complete, Anda dapat melihat aplikasi yang telah dibuat.

  1. Di langkah Complete, klik View Details. Di halaman Deployment, Anda dapat menemukan aplikasi baru bernama serverless-app-svc.

    部署列表

  2. Di panel navigasi sebelah kiri halaman detail kluster, pilih Network > Services. Di halaman Service, Anda dapat menemukan Service baru bernama serverless-app-svc.

    服务列表

  3. Untuk mengunjungi halaman selamat datang NGINX, Anda dapat menggunakan browser Anda untuk mengakses titik akhir eksternal atau nama domain Service.

    Penting
    • Saat Anda menggunakan browser untuk mengakses Service, pastikan bahwa tipe Service adalah Server Load Balancer.

    • Jika Anda menggunakan nama domain untuk mengakses Service, Anda harus mengonfigurasi file hosts. Untuk informasi lebih lanjut, lihat bagian Penting dari topik ini.

    nginx