Sunday 12 July 2020

Apa itu Kubernetes?



Berdasarkan definisi kubernetes.io, kubernetes ialah sistem sumber terbuka untuk pengautomatikan deployment, penskalaan ( scaling ) dan pengurusan aplikasi yang telah dicontainerizekan . Pada awalnya ianya merupakan project dalaman Google yang dinamakan Borg. Setelah 15 tahun penggunaanya, Google mendermakan project ini kepada komuniti sumber terbuka dan mereka menamakanya Kubernetes.

Oleh kerana ejaan Kubernetes ini terlalu panjang, selalunya ia di tulis K8s. No 8 itu adalah jumlah huruf selepas huruf K hingga ke huruf s dalam perkataan Kubernetes. Cara nak sebut K8s ialah seperti sebutan perkataan ini "Kate's"

Kubernetes dibina dengan menggunakan GO lang. GO lang ialah bahasa pengaturcaraan  dari Google. Salah satu penciptanya ialah Ken Thomson, iaitu pencipta bahasa pengaturcaraan C. Oleh itu jika kita lihat pada sturuktur pengaturcaraan GO lang ada bau-bau bachang C 

Kuberenetes ni berkuasa tinggi tapi nak pakai kena faham macam mana nak pakai dengan betul baru terserlah dia punya kekuasaanya. Pada sistem monolithic design dahulunya orang akan beli pelayan yang besar dan berkuasa tinggi and perlu mempunyai kebolehan uptime yang lama. Jika tak cukup kuasa boleh tambah lagi CPU dan RAM sampai segkak. Bila dah tak boleh tambah lagi, terpaksalah beli pelayan yang lebih besar dah sambung proses tambah CPU dan RAM sampai akhir.

Penggunaan sistem monolithic ini tidak sesuai di Kubernetes. Sistem monolithic perlu direka semula kepada microservice dimana ia dipecahkan kepada aplikasi-aplikasi kecil. Aplikasi-aplikasi ini tidak perlu uptime yang lama malah ianya boleh mati bila-bila dan boleh diganti .

Seperti yang telah dikatakan pada awal tadi, Kubernetes ni pengurusan aplikasi yang telah dicontainerizekan. Oleh itu yang hendak dilarikan di atas Kubernetes perlu dicontainerizekan dahulu. Secara lalai, format container yang digunakan ialah Docker.

Selain Kubernetes, ada pesaing-pesaing lain yang boleh menguruskan deployment aplikasi-aplikasi yang telah dicontainerizekan. Contohnya:-
1. Docker Swarm
2. Nomad
3. Rancher
4. Apache Mesos

Design Kubernetes dari Kubernetes.io

Secara ringkasnya Kubernetes terdiri dari 2 bahagian:-

1. Kubernetes Control Plane atau lebih dikenali sebagai Master Node. Pengguna hanya berurusan dengan Master server dan Master server akan deploy aplikasi-aplikasi di worker node

2. Kubernetes Nodes atau lebih dikenali sebagai Worker Node. Applikasi-applikasi akan berlari di sini.


2 comments:

  1. Power abang Jep. Dah le power Golang. Molek la tu gabung dengan skill K8s.

    ReplyDelete
  2. Terbaik Jep..jenuh nak translate ke BM hehe

    ReplyDelete

Tatacara klon pelayan di AWS lightsail

  Kadang-kala kita diminta untuk buat satu sistem baru untuk tujuan ujikaji atau percubaan fungsi baru. Jika di AWS lightsail kita boleh bua...