Sebelum menggunakan Container Service for Kubernetes (ACK), pahami konsep produk yang terlibat. Topik ini memperkenalkan istilah umum beserta deskripsinya untuk membantu Anda memahami ACK berdasarkan konsep Kubernetes.
Kluster
Kluster adalah kumpulan sumber daya cloud yang menjalankan aplikasi dalam kontainer, termasuk Instance ECS, jaringan VPC, dan penyeimbang beban SLB.
ACK menyediakan berbagai tipe kluster sesuai kebutuhan operasional dan infrastruktur:
Tipe kluster | Deskripsi | Cocok untuk |
ACK managed Pro cluster | Merupakan pengembangan dari kluster ACK managed Basic dengan keandalan lebih tinggi, keamanan lebih kuat, serta SLA yang mencakup klausa kompensasi. | Workload perusahaan dan produksi berskala besar yang memerlukan ketersediaan terjamin |
ACK managed Basic cluster | ACK membuat dan mengelola lapisan kontrol. Anda hanya perlu membuat dan memelihara node pekerja. | Tim yang menginginkan Kubernetes terkelola dengan biaya sumber daya lebih rendah |
ACK dedicated cluster | Memerlukan tiga lapisan kontrol dan node pekerja. Memberikan kontrol infrastruktur detail halus, tetapi Anda harus merencanakan, mengelola, dan memperbarui node sendiri. | Tim yang memerlukan kontrol langsung terhadap lapisan kontrol |
ACK cluster that supports sandboxed containers | Menjalankan kontainer sandbox pada Instans Mesin Fisik ECS untuk performa tinggi di bawah beban berat dan bandwidth tinggi. | Workload dengan persyaratan isolasi ketat atau permintaan I/O tinggi |
ACK cluster for confidential computing | Menggunakan Intel Software Guard Extensions (Intel SGX) untuk melindungi kode dan data saat runtime. | Proteksi data, blockchain, manajemen kunci, perlindungan kekayaan intelektual, dan komputasi genomik |
ACK Edge cluster | Memperluas Kubernetes ke edge dengan otonomi node, manajemen berbasis sel, dan manajemen network traffic. Mendukung API Kubernetes asli—tidak perlu menulis ulang kode. | Aplikasi yang mencakup lingkungan cloud dan edge |
ACK Serverless cluster | Tidak perlu menyediakan lapisan kontrol atau node pekerja. Konfigurasikan sumber daya, tentukan container image, dan jalankan aplikasi dari Konsol ACK atau CLI. | Tim yang ingin menjalankan kontainer tanpa mengelola infrastruktur apa pun |
ACK One registered cluster | Menghubungkan kluster Kubernetes eksternal ke ACK untuk manajemen terpusat, termasuk kluster on-premises dan kluster cloud pihak ketiga. | Lingkungan multi-kluster atau hybrid-cloud |
Node
Node adalah VM atau server fisik yang telah dipasangi Docker Engine. Saat ditambahkan ke kluster ACK, ACK akan menginstal agen dan mendaftarkan node tersebut. Skalakan jumlah node naik atau turun sesuai permintaan workload.
Node pool
Node pool mengelompokkan node dengan konfigurasi yang sama untuk pembaruan dan penskalaan terpusat.
Node pool ACK mendukung fitur O&M otomatis yang mengurangi beban operasional:
Patching otomatis untuk Common Vulnerabilities and Exposures (CVE) sistem operasi
Pemulihan mandiri untuk node yang rusak
Pembaruan versi otomatis untuk kubelet dan containerd
Lihat Node pools.
VPC
VPC adalah jaringan yang terisolasi secara logis di Alibaba Cloud. Anda dapat menyesuaikan Blok CIDR, tabel rute, dan gerbang. Deploy Instance ECS, Instance SLB, dan Instance RDS di dalam VPC.
Security group
Security group adalah firewall virtual dengan Stateful Packet Inspection (SPI) dan penyaringan paket untuk instans di wilayah yang sama. Instans dalam satu security group berbagi aturan keamanan yang sama.
App catalog
App catalog adalah fitur ACK yang menyederhanakan penerapan aplikasi melalui integrasi Helm dan antarmuka GUI untuk menelusuri serta menginstal Helm chart.
Orchestration template
Orchestration template menyimpan konfigurasi sumber daya Kubernetes dalam format YAML untuk pengendalian versi, penggunaan ulang, dan berbagi.
Knative
Knative adalah framework serverless berbasis Kubernetes untuk membangun dan menjalankan aplikasi cloud-native lintas platform.
Kubernetes
Kubernetes adalah platform open source untuk workload dan layanan dalam kontainer, dengan konfigurasi deklaratif, peluncuran dan rollback otomatis, self-healing, serta skalabilitas horizontal.
Kontainer
Kontainer mengemas aplikasi beserta dependensi runtime-nya ke dalam unit portabel yang terisolasi. Satu node dapat menjalankan beberapa kontainer.
Container image
Container image mengemas aplikasi beserta dependensinya. Tarik gambar dari Docker Hub, Container Registry, atau registri privat.
Setiap gambar diidentifikasi oleh kombinasi URI registri dan tag-nya. Tag default-nya adalah latest.
Image registry
Image registry menyimpan gambar yang disediakan Kubernetes dan gambar yang dibuat dari kontainer.
Control plane
Control plane mengelola node pekerja dan komponen kluster, mengekspos API Kubernetes, menjadwalkan workload, mempertahankan status kluster, serta mengelola jaringan kontainer.
Control plane mencakup komponen-komponen berikut:
Komponen | Peran |
| Mengekspos API Kubernetes. Semua operasi kluster melewatinya. |
| Menetapkan Pod baru ke node berdasarkan ketersediaan sumber daya dan batasan penjadwalan. |
| Menjalankan loop controller yang menyelaraskan status aktual kluster dengan status yang diinginkan (misalnya, memulai ulang Pod yang gagal). |
| Penyimpanan pasangan kunci-nilai terdistribusi yang menyimpan seluruh konfigurasi dan data status kluster. |
Container network plug-ins | Mengimplementasikan jaringan Pod dan kebijakan jaringan untuk kluster. |
Worker node
Worker node adalah VM atau mesin fisik yang menjalankan workload, meng-host Pod yang dijadwalkan, dan berkomunikasi dengan control plane. Worker node menjalankan komponen-komponen berikut:
Lingkungan runtime Docker
kubelet— agen utama node yang memastikan kontainer berjalan sesuai spesifikasikube-proxy— memelihara aturan jaringan untuk komunikasi antar-Pod dan antara Pod dengan layananKomponen opsional yang spesifik tergantung konfigurasi kluster Anda
Namespace
Namespace membagi sumber daya kluster ke dalam ruang virtual yang terisolasi. Pisahkan lingkungan, tim, atau aplikasi dalam satu kluster. Administrator kluster dapat membuat namespace tambahan.
Setiap kluster ACK mencakup namespace default berikut:
Namespace | Tujuan |
| Namespace default untuk sumber daya yang dibuat tanpa namespace eksplisit. |
| Dicadangkan untuk komponen sistem Kubernetes. Jangan deploy aplikasi Anda di sini. |
| Dapat dibaca oleh semua pengguna, termasuk yang tidak terotentikasi. Dicadangkan untuk sumber daya publik tingkat kluster. |
Pod
Pod adalah unit deployable terkecil di Kubernetes, yang mengemas satu atau beberapa kontainer, volume penyimpanan, IP kluster unik, dan konfigurasi runtime.
ReplicationController
ReplicationController mempertahankan jumlah replika Pod tertentu. Komponen ini mengganti Pod yang gagal dan menghentikan replika berlebih. Jumlah minimumnya adalah satu.
ReplicationController merupakan resource lawas. Gunakan ReplicaSet (dikelola oleh Deployment) untuk workload baru.
ReplicaSet
ReplicaSet menggantikan ReplicationController dengan pemilih label yang lebih fleksibel. Deployment membuat dan mengelola ReplicaSet untuk mempertahankan jumlah Pod yang diinginkan.
Workload
Workload adalah aplikasi yang berjalan di Kubernetes. Pilih tipe workload berdasarkan perilaku dan kebutuhan aplikasi:
Tipe beban kerja | Deskripsi | Gunakan saat |
Deployment | Deployment mengelola aplikasi replikasi di kluster Kubernetes. Gunakan untuk aplikasi independen dengan fitur yang sama. | Menjalankan beberapa replika aplikasi tanpa status |
StatefulSet | Menjamin deployment, penskalaan, dan pembaruan bergulir yang terurut; mendukung penyimpanan persisten. | Aplikasi yang memerlukan identitas stabil atau data persisten (database, antrian) |
DaemonSet | Menjalankan satu Pod di setiap node (atau subset yang dipilih). | Operasi tingkat kluster seperti pengumpulan log, agen pemantauan, atau plugin jaringan tingkat node |
Job | Menjalankan tugas hingga selesai, dengan paralelisme opsional. | Pemrosesan batch dan tugas satu kali |
CronJob | Menjalankan Job sesuai jadwal. | Tugas periodik seperti backup atau notifikasi email |
CustomResourceDefinition (CRD) | Memperluas API Kubernetes dengan tipe resource kustom. | Mengintegrasikan controller pihak ketiga atau mendefinisikan resource spesifik domain |
Label
Label adalah pasangan kunci-nilai pada sumber daya Kubernetes. Label tidak memiliki semantik sistem. Gunakan label untuk mengorganisasi dan memilih sumber daya—misalnya, untuk pemilih Service atau penjadwalan nodeAffinity. Tambahkan label saat pembuatan atau ubah nanti. Setiap sumber daya dapat memiliki beberapa label, tetapi setiap kunci harus unik.
Layanan
Layanan mengekspos Pod sebagai titik akhir jaringan yang stabil. kube-proxy memilih Pod backend dan mengarahkan traffic ke port Layanan.
Ingress
Ingress mengarahkan traffic HTTP dan HTTPS eksternal ke Layanan dalam kluster. Konfigurasikan URL yang dapat dijangkau, distribusikan traffic, hentikan SSL, dan aktifkan hosting virtual berbasis nama.
Buat Ingress dengan HTTP POST ke server API kluster. Controller Ingress (biasanya load balancer) menegakkan aturan tersebut. Untuk ketersediaan tinggi, tambahkan router edge atau proxy frontend.
ConfigMap
ConfigMap menyimpan konfigurasi non-sensitif sebagai pasangan kunci-nilai. Pisahkan konfigurasi dari container image agar aplikasi dapat dipindahkan antarlingkungan. ConfigMap dapat menyimpan nilai individual, file konfigurasi, atau objek JSON.
Secret
Secret menyimpan data sensitif seperti kata sandi dan sertifikat, terpisah dari konfigurasi umum guna mengurangi risiko paparan tidak sengaja.
Volume
Volume Kubernetes adalah penyimpanan yang cakupannya seumur Pod. Berbeda dengan volume Docker (cakupannya satu kontainer), volume Kubernetes dibagi di antara semua kontainer dalam Pod yang sama.
Persistent volume (PV)
Persistent volume (PV) adalah penyimpanan tingkat kluster yang independen dari Pod mana pun. Sediakan tipe PV seperti disk cloud atau NAS melalui StorageClass.
Persistent volume claim (PVC)
Persistent volume claim (PVC) adalah permintaan penyimpanan. Pod mengonsumsi PVC seperti mengonsumsi sumber daya node.
StorageClass
StorageClass mendefinisikan tipe penyimpanan dan memungkinkan penyediaan PV dinamis. Saat PVC mereferensikan StorageClass, Kubernetes secara otomatis membuat PV yang sesuai.
Auto scaling
Auto scaling menyesuaikan sumber daya komputasi berdasarkan permintaan workload. ACK melakukan penskalaan pada dua tingkat:
Penskalaan tingkat Pod menyesuaikan jumlah atau ukuran Pod dalam kluster:
Komponen | Deskripsi |
Horizontal Pod Autoscaler (HPA) | Menyesuaikan jumlah Pod berdasarkan pemanfaatan CPU untuk Deployment dan StatefulSet. |
CronHPA | Menyesuaikan workload sesuai jadwal yang telah ditentukan menggunakan komponen |
Vertical Pod Autoscaler (VPA) | Menyesuaikan nilai |
Penskalaan tingkat node menyesuaikan jumlah node kluster:
Komponen | Deskripsi |
Cluster Autoscaler | Menambah atau menghapus node saat Pod tidak dapat dijadwalkan karena sumber daya tidak mencukupi. Mendukung instans reguler, instans berakselerasi GPU, dan instans preemptible di berbagai zona dan tipe instans. |
Gunakan auto scaling untuk workload online, komputasi dan pelatihan berskala besar, pembelajaran mendalam berakselerasi GPU, inferensi dan pelatihan model dengan GPU bersama, serta pola beban periodik.
Observabilitas
Observabilitas Kubernetes mencakup pemantauan dan pencatatan log:
Pemantauan — melacak metrik kesehatan dan performa untuk deteksi isu secara real-time.
Pencatatan log — merekam event aplikasi dan sistem untuk diagnostik dan troubleshooting.
Helm
Helm adalah manajer paket Kubernetes. Helm chart mengemas konfigurasi sumber daya untuk menerapkan, meningkatkan, dan berbagi aplikasi.
nodeAffinity
nodeAffinity membatasi node mana saja yang dapat menjalankan Pod, berdasarkan label node. Gunakan nodeAffinity untuk mengarahkan workload ke node dengan perangkat keras, wilayah, atau atribut khusus tertentu.
Taint
Taint menandai node agar menolak Pod yang tidak memiliki toleransi yang sesuai. Taint bekerja berlawanan dengan nodeAffinity—mereka menolak Pod alih-alih menariknya.
Toleransi
Toleransi memungkinkan Pod dijadwalkan ke node yang memiliki taint yang cocok. Toleransi mengizinkan tetapi tidak mewajibkan penempatan di node yang bertaint.
podAffinity
podAffinity menempatkan Pod dalam domain topologis yang sama (misalnya node atau zona yang sama) dengan Pod yang sesuai dengan pemilih. Gunakan podAffinity untuk menempatkan layanan yang sering berkomunikasi secara berdekatan guna mengurangi latensi jaringan.
podAntiAffinity
podAntiAffinity mencegah Pod berada dalam domain topologis yang sama dengan Pod yang sesuai dengan pemilih. Gunakan podAntiAffinity untuk menyebarkan replika ke berbagai node atau zona demi ketersediaan tinggi.
Service mesh (Istio)
Istio adalah service mesh open source yang menghubungkan, mengamankan, mengontrol, dan mengamati layanan mikro.
Service Mesh (ASM) adalah service mesh terkelola penuh dari Alibaba Cloud yang kompatibel dengan Istio open source. Arahkan dan pisahkan traffic antarlayanan, amankan komunikasi dengan autentikasi, serta amati perilaku layanan tanpa mengubah kode aplikasi.
Lihat Kubernetes concepts untuk referensi Kubernetes yang lebih luas.