Mengenal Kubernetes, Fungsi dan Kelebihannya
Perusahaan Google merupakan perusahaan terbesar di dunia yang menyediakan platform dalam jumlah banyak untuk mempermudah kegiatan dan aktivitas masyarakat. Lalu, apa hubungan Google dengan Kubernetes?
Apa itu Kubernetes?
Kubernetes merupakan platform open source yang digunakan untuk manajemen container melalui aplikasi internal. Aplikasi ini biasa digunakan oleh Google (Borg) untuk mengelola cluster milik mereka sendiri, dari segi bisnis, aplikasi management open source ini adalah senjata yang diandalkan oleh Google dengan tujuan mendongkrak naiknya peringkat Google di pasar cloud hosting.
Dengan menggunakan container, seluruh aplikasi yang dimiliki akan dikemas sehingga ketika akan dijalankan, aplikasi ini akan berjalan sama serperti pada saat kita mencobanya. Untuk menjalankan container, tentunya membutuhkan sebuah aplikasi. Aplikasi yang paling umum digunakan adalah Docker. Docker di install pada server, kemudian jalankan docker image dan terbentuklah container serta aplikasi sudah berjalan dan dapat digunakan.
Fungsi Kubernetes
Kubernetes memiliki banyak fungsi, tetapi masih terus ada scenario terbaru yang bertujuan memperoleh keuntungan di fitur barunya. Alur kerja yang digunakan lebih spesifik pada aplikasi agar bisa disederhanakan untuk mempercepat kecepatan pada pengembang. Adanya Orkestrasi ad hoc yang diterima di awal seringkali memerlukan otomatisasi yang lebih kuat. Hal ini yang menyebabkan kubernetes dirancang menjadi platform untuk membangun ekosistem di komponen yang bisa mempermudah penerapan, pengelolaan aplikasi, serta skala.
Istilah Umum yang Digunakan pada Kubernetes
Adapun beberapa istilah bagi anda yang ingin menggunakan aplikasi dengan baik, yaitu:
1. Pod
Merupakan salah satu grub pada container instance dan dapat digunakan untuk menjalankan lebih dari satu container. Dimana satu container dengan container lain berada pada satu pod mampu mengakses menggunakan alamat localhost.
2. Node
Merupakan representasi dalam satu mesin yang dapat berupa mesin jenis virtual, misalkan dropletnya DigitalOcean atau VPS) maupun fisik.
3. Service
Merupakan mekanisme yang digunakan untuk mengekspos pod ke dunia luar. Anda membutuhkan alamat IP yang tepat untuk mengakses aplikasi, sehingga di service ini akan ditemukan alamat IP tetap dan nantinya bisa diarahkan ke pod anda dengan menggunakan selector.
4. Label
Sebagai seperangkat informasi berupa metadata untuk mencari pod khusus dan fungsi lain pada kubernetes
5. App-Belajar
Dapat digunakan untuk membuat label app yang berisi nama aplikasi dan container, service, dan Pod yang merupakan bagian aplikasi belajar tersebut anda beri label app=belajar.
6. Strage-Production
Digunakan untuk menentukan konfigurasi environment deployment pada aplikasi. Misalnya testing, development, performance test, production, serta security est.
7. Jenis-frontend
Dapat digunakann untuk menciptakan sebuah label jenis aplikasi, misalkan cache, fileserver, database, froontend, dan lain sebagainya.
8. Selector
Merupakan filtering yang menggunakan label
Kelebihan Kubernetes
Beberapa kelebihan yang dimiliki kubernetes yaitu
1. Service discovery and load balancing
Kubernetes mampu mengekspos container dengan nama DNS atau IP address server itu sendiri. Apabila trafik ke container besar , kubernetes secara otomatis akan melakukan load balancing trafik (penyeimbanagn beban) dan melakukan distribusi trafik sehingga aplikasi selalu stabil.
2. Storage orchestration
Memungkinkan untuk me-mount sistem storage yang anda inginkan, seperti lokal storage, atau storage dari cloud provider seperti aws, dan alicloud.
3. Self-healing
Kubernetes mampu merestart container yang gagal, mematikan dan mengganti container yang tidak menanggapai request, dan tidak akan memberikan trafik ke container sampai container benar-benar siap untuk menerima request (ready to serve).
4. Secret and configuration management
Memungkinkan untuk menyimpan data-data yang sentitif, seperti password, auth token dan ssh keys. Dapat membangun dan mengupdate secret tanpa harus membangun ulang container image anda, dan tanpa mengekspose secret anda didalam konfigurasi anda.
Arsitektur Kubernetes
Adapun beberapa komponen berbeda yang saling terintegrasi diantaranya adalah :
- Kubelet
- Kubernetes controller manager
- Kubernetes API server
Master Components
Menyediakan cluster control plane dan komponen master berfungsi untuk mengatur penjadwalan, memulai pembuatan pod dengan replicate.
Node Componentes
Komponen node jalan pada setiap node/worker, menjaga pod yang berjalan dan menyediakan runtime untuk kubernetes. Komponen node terdiri dari kubelet, kube-proxy dan container runtime
Addons
Addons merupakan pod dan layanan yang mengimplementasikan fitur cluster, serta dapat dikelola oleh Deployment, ReplicationControllers, dan sebagainya. Adapun bagian dari addons yaitu DNS, Web UI (Dashboard), Container Resource Monitoring, Cluster Level Logging.