Kubernetes adalah sebuah platform open-source yang berfungsi untuk melakukan management workload aplikasi yang di kontainerisasi serta menyediakan konfigurasi dan otomatisasi secara deklaratif. Kubernetes bisa disingkat menjadi “K8S” yang dimana huruf “K” merupakan huruf depan dari Kubernetes, sedangkan angka “8” merupakan jumlah dari huruf “ubernete” dan “S” merupakan huruf terakhir dari Kubernetes. Jadi Kubernetes bisa disingkat menjadi “K8S”.
Kelebihan Kubernetes
Setelah mengetahui pengertian dari Kubernetes, lalu apa kelebihan Kubernetes ini sebagai sebuah platform open-source?
Berikut merupakan kelebihan dari Kubernetes :
- Service discovery and load balancing
Kubernetes bisa mengekspose container dengan menggunakan nama DNS ataupun menggunakan IP address server itu sendiri. Jika trafik ke container besar, maka kubernetes akan secara otomatis melakukan proses load balancing trafik (penyeimbanagn beban) dan melakukan distribusi trafik sehingga aplikasi selalu stabil.
- Storage orchestration
Kubernetes bisa memungkinkan untuk me-mount sistem storage yang anda inginkan, seperti lokal storage, ataupun storage dari cloud provider seperti aws, dan alicloud.
- Automated rollouts and rollbacks
Deployment di kubernetes bisa menggunakan file YAML. Sehingga teman-teman dapat mendeskripsikan terlebih dahulu deployment yang anda inginkan, kemudian anda lakukan deployment. Teman-teman bisa menggunakan file YAML untuk melakukan deployment lainnya atau untuk mengubah deployment yang sudah ada. Atau teman-teman bisa melakukan rollback jika memiliki file YAML yang lama. Sehingga semua terdokumentasi secara rinci dan semua bisa dilakukan dengan cara yang otomatis.
- Automatic bin packing
Kubernetes mengizinkan teman-teman untuk memberikan container dengan CPU dan RAM secara spesifik. Ketika container mempunyai sumber daya yang sudah ditentukan, Kubernetes dapat melakukan keputusan yang lebih baik dalam mengelola sumber daya untuk container.
- Self-healing
Kubernetes merestart container yang failed, mematikan ataupun mengganti container yang tidak menanggapai permintaan, dan kubernetes tidak akan memberikan trafik ke container hingga container siap untuk menerima permintaan(ready to serve).
- Secret and configuration management
Kubernetes memungkinkan untuk menyimpan data-data yang sangat sentitif, seperti password, auth token dan ssh keys. Teman-teman bisa membangun dan mengupdate secret tanpa harus membangun kembali container image, dan tanpa mengekspose secret didalam konfigurasi anda.
Istilah-Istilah Yang Digunakan Di Kubernetes
Dalam Kubernetes ada istilah yang wajib dipahami oleh pengguna, agar bisa menggunakan aplikasi ini secara baik:
Pod
Pod adalah salah satu grub pada container instance. Dengan ini teman-teman dapat menjalankan tidak hanya untuk satu container saja (misalkan aplikasi redis cache + web + longing service pada satu pod. Dimana satu container dengan container yang lainnya yang ada dalam satu pod bisa mengakses menggunakan alamat localhost. Anda bisa menganggap pod merupakan laptop yang biasa Anda gunakan untuk coding. Alamat localhost sendiri sangat sering dipakai untuk melakukan akses database pada aplikasi teman-teman.
Node
Node merupakan representasi dalam satu mesin dan bisa saja mesin yang digunakan adalah mesin jenis virtual (misalkan dropletnya DigitalOcean atau VPS) maupun fisik.
Service
Istilah service di Kubernetes merupakan mekanisme yang digunakan mengekspos pod ke dunia luar. Tidak adanya alamat IP jelas pada aplikasi yang berjalan pada pod, maka agar bisa mengakses pada aplikasi lain maupun oleh user, wajib menggunakan alamat IP yang benar. Maka di service inilah akan ditemukan alamat IP tetap dan nantinya bisa diarahkan ke pod Anda dengan menggunakan selector.
Label
Label dalam Kubernetes ialah seperangkat informasi yang berupa metadata dengan tujuan yaitu untuk mencari pod khusus. Daripada itu juga mempunyai fungsi lain yang bisa dipakai pada kubernetes.
App-Belajar
Teman-teman dapat membuat label app dengan isinya nama aplikasi dan container, service, dan Pod yang merupakan bagian aplikasi belajar tersebut Anda beri label app=belajar.
Strage-Production
Label stage pada umumnya sering digunakan untuk menentukan konfigurasi environment deployment pada aplikasi Anda. Contohnya testing, development, performance test, production, serta security est.
Jenis-frontend
Disini teman-teman bisa menciptakan sebuah label jenis aplikasi, contohnya cache, fileserver, database, froontend, dan lainnya.
Selector
Selector adalah filtering yang menggunakan label, misalnya saat teman-teman mencari banyak instance database dengan menggunakan aplikasi belajar yang dijalankan pada production.
Jadi bagaiman menurut teman-teman? Selain aplikasi ini open-source, teman-teman juga bisa memanfaatkan teknologi ini untuk pengembangan aplikasi agar prosesnya lbih cepat tanpa harus menginstal satu persatu servernya. Semoga artikel ini bermanfaat. See you in the next article.