Era Deployments
Pada gambar diatas bisa terlihat era deployment saat ini.
- Traditional deployment: Sebuah aplikasi akan dijalankan dalam satu fisik server.
- Virtualized deployment: ini memungkinkan Anda menjalankan beberapa Mesin Virtual (VM) pada satu CPU server fisik. Setiap VM adalah mesin lengkap yang menjalankan semua komponen, termasuk sistem operasinya sendiri.
- Containers deployment: Kontainer mirip dengan VM, namun memiliki properti isolasi untuk berbagi Sistem Operasi (OS) di antara aplikasi. Mirip dengan VM, container memiliki sistem file sendiri, pembagian CPU, memori, ruang proses, dan banyak lagi. Karena mereka terpisah dari infrastruktur yang mendasarinya, mereka bersifat portabel di seluruh cloud dan distribusi OS.
Kubernetes Provide you with
- Service discovery and load balancing
- Storage orchestration
- Automated rollout and rollbacks
- Automatic bin packing
- Self-healing: restarts containers that fail, replaces containers, kill containers that respon health check
- Batch execution
- Horizontal scaling: Scale your aplication up and down or automatically based on CPU Usage.
- IPV4/IPv6 dual-stack
- Designed for extensibilitiy: Kubernetest cluster without changing upstream source code.
Kubernetes is not a traditional, all-inclusive PaaS (Platform as a Service) system
Komponen Kubernetes
Cluster
A Cluster adalah sekumpulan node yang dikelompokkan bersama. Dengan cara ini bahkan jika satu node gagal, aplikasi Anda masih dapat diakses dari node lainnya. Selain itu, memiliki banyak node juga membantu dalam berbagi beban.
Nodes
A node mungkin mesin virtual atau fisik, tergantung pada cluster. Setiap node dikelola oleh control plane dan berisi layanan-layanan yang diperlukan untuk menjalankan Pod.
Pods
Pods adalah unit komputasi terkecil yang dapat Anda buat dan kelola di Kubernetes.
Sebuah Pod (seperti dalam pod paus atau pod kacang polong) adalah sekelompok kontainer yang terdiri dari satu atau lebih, dengan penyimpanan dan sumber daya jaringan bersama, serta spesifikasi cara menjalankan kontainer tersebut.
Sama halnya dengan container aplikasi, sebuah Pod juga bisa berisi container init yang berjalan pada saat startup Pod. Kamu juga dapat memasukkan container ephemeral untuk melakukan debug pada Pod yang sedang berjalan.