Kubernetes adalah sebuah platform orkestrasi open-source yang digunakan untuk otomatisasi deployment, scaling, dan manajemen aplikasi container. Dikembangkan oleh Google dan saat ini dikelola oleh Cloud Native Computing Foundation (CNCF), Kubernetes menyediakan sistem infrastruktur dan fleksibel untuk mengelola aplikasi container.
- Containerization: Kubernetes berbasis pada konsep containerization, di mana aplikasi dan semua dependensinya dikemas bersama dalam unit yang disebut “container.” Ini memastikan bahwa aplikasi dapat dijalankan dengan konsisten di berbagai environment development sampai production.
- Node: Node adalah Physical atau Virtual Resource tempat service aplikasi dijalankan. Dalam Kubernetes, node dibagi menjadi dua jenis: master node dan worker node. Master node bertanggung jawab atas manajemen keseluruhan cluster, sementara worker node menjalankan aplikasi container.
- Pod: Pod adalah unit terkecil dalam Kubernetes dan merupakan tempat berjalannya satu atau lebih container yang saling berbagi resource, data dan jaringan. Pod dapat dianggap sebagai unit dasar deployable dalam Kubernetes.
- ReplicaSet: ReplicaSet adalah objek Kubernetes yang bertanggung jawab untuk memastikan jumlah tertentu dari pod berjalan setiap saat. Ini memungkinkan scaling horizontal dengan mudah, yaitu menambah atau mengurangi jumlah pod sesuai kebutuhan.
- Service: Service adalah cara untuk mengekspos aplikasi yang berjalan di dalam pod ke luar cluster seperti LoadBalancer, Ingress & StorageClass. Service menyediakan alamat IP dan nama DNS , memungkinkan aplikasi berkomunikasi satu sama lain.
- Deployment: Deployment adalah objek Kubernetes yang menyediakan cara deklaratif untuk mendefinisikan aplikasi. Ini memungkinkan pengelolaan rollout dan rollback aplikasi dengan mudah, dan juga update konfigurasi.
- ConfigMap dan Secret: ConfigMap dan Secret adalah sumber daya Kubernetes yang digunakan untuk menyimpan konfigurasi dan data rahasia (seperti kata sandi) yang dapat diakses oleh aplikasi.
- Namespace: Namespace memungkinkan user untuk membagi cluster menjadi beberapa bagian yang terisolasi secara logical. Ini membantu dalam mengatur dan mengelompokkan resource.
Kubernetes menyediakan platform orkestrasi dan manajemen aplikasi yang terdiri dari banyak container. Dengan konsep-konsep ini, Kubernetes memungkinkan developer dan administrator sistem untuk mengelola aplikasi secara efisien, provide High Availability , dan skalabilitas dengan mudah.