Kubernetes

Daripada Wikipedia, ensiklopedia bebas.
Jump to navigation Jump to search
Kubernetes
Kubernetes logo.svg
PembangunYayasan Pengkomputeran Asli Awan
Keluaran pertama7 Jun 2014; 5 tahun yang lalu (2014-06-07)[1]
Keluaran stabil1.13[2] / 3 Disember 2018; 9 bulan yang lalu (2018-12-03)
Ditulis dalamGo
JenisPerisian pengurusan gugusan
LesenLesen Apache 2.0
Tapak sesawangkubernetes.io

Kubernetes (selalunya disingkatkan kepada k8s[3]) ialah sebuah sistem sumber terbuka untuk mengautomasi pengerahan, penskalaan, dan pengurusan aplikasi-aplikasi berkontena.[3][4] Ia pada mulanya direka oleh Google dan kini diselenggara oleh Yayasan Pengkomputeran Asli Awan. Kubernetes mampu berfungsi dengan pelbagai peralatan kontena termasuk docker dan rkt.[5] Kebanyakan perkhidmatan awan menawarkan pelantar atau infrastruktur berasaskan Kubernetes sebagai perkhidmatan (PaaS atau IaaS) di mana Kubernetes boleh dikerahkan sebagai khidmat pemberi pelantar.

Sejarah[sunting | sunting sumber]

Ceramah Google Container Engine di Google Cloud Summit

Kubernetes (κυβερνήτης, "gabenor", "jurumudi" atau "kapten" dalam bahasa Yunani)[3] telah diasaskan oleh Joe Beda, Brendan Burns dan Craig McLuckie.[6] Tidak lama kemudian jurutera-jurutera Google lain termasuk Brian Grant dan Tim Hockin pun turut serta. Projek ini julung kali diumumkan oleh Google pada pertengahan tahun 2014.[7] Pembangunan dan reka bentuknya banyak dipengaruhi oleh sistem Borg oleh Google,[8][9] malahan ramai penyumbang projek ini pernah terlibat dengan sistem tersebut. Nama kod asal bagi Kubernetes di Google ialah Project Seven sempena Seven of Nine, seorang Borg yang lebih mesra di dalam Star Trek.[10] Tujuh ruji pada roda di dalam logo Kubernetes merujuk kepada nama kod tersebut. Projek Borg yang asal ditulis sepenuhnya dalam C++[8], tetapi sistem Kubernetes yang ditulis semula dilaksanakan dalam Go.

Kubernetes v1.0 telah dikeluarkan pada 21 Julai 2015.[11] Seiring dengan keluaran Kubernetes v1.0, Google berkerja sama dengan Yayasan Linux telah membentuk Yayasan Pengkomputeran Asli Awan (Cloud Native Computing Foundation, CNCF)[12] dan menawarkan Kubernetes sebagai teknologi permulaannya. Pada 6 Mac 2018, Projek Kubernetes mendapat tempat ke-9 mengikut jumlah lakuan (commit) di GitHub, dan tempat kedua mengikut pengarang dan isu kepada inti Linux.[13]

Objek-objek Kubernetes[sunting | sunting sumber]

Kubernetes menetapkan satu set blok binaan ("primitif") yang bersama-sama memberikan mekanisma yang mengerah, menyelenggara, dan menskala aplikasi-aplikasi berdasarkan CPU, ingatan[14], atau metrik-metrik tersuai.[15] Kubernetes digandingkan secara longgar (loosly coupled) dan boleh diperluas supaya mampu menampung beban kerja berlainan. Sebahagian besar kebolehperluasan ini disediakan oleh Kubernetes API, yakni API yang digunakan oleh komponen-komponen dalaman, perluasan-perluasan (extension) dan kontena-kontena yang dijalankan pada Kubernetes.[16]

Pod[sunting | sunting sumber]

Unit penjadualan asas dalam Kubernetes ialah pod.[17] Ia meninggikan tahap pengabstrakan dengan mengelompokan komponen-komponen berkontena. Satu pod terdiri daripada satu atau lebih kontena yang dijamin diletakkan di tempat yang sama di mesin hos dan boleh berkongsi sumber.[16]

Setiap pod di dalam Kubernetes diberikan alamat IP Pod yang unik di dalam gugusan, lantas membolehkan aplikasi-aplikasi menggunakan port tertentu tanpa risiko port tersebut sudah digunakan oleh aplikasi lain.[18]

Perkhidmatan[sunting | sunting sumber]

Gambaran ringkas menunjukkan bagaimana Perkhidmatan berinteraksi dengan rangkaian Pod di dalam gugusan Kubernetes

Perkhidmatan atau servis Kubernetes ialah sekumpulan pod yang bekerjasama, seperti satu peringkat untuk aplikasi berbilang peringkat. Kumpulan pod yang membentuk perkhidmatan ditentukan dengan menggunakan pemilih label (label selector).[16]

Jilid[sunting | sunting sumber]

Sistem fail di dalam kontena Kubernetes secara lalai menyediakan storan sementara. Ini bermakna jika kontena sebegini dimulakan semula, semua datanya akan hilang, dan oleh yang demikan, storan sebegini adalah suatu batasan dalam semua jenis aplikasi kecuali aplikasi ringkas. Jilid (volume) Kubernetes menyediakan storan kekal yang kekal sepanjang hayat pod yang terbabit. Storan sebegini turut boleh dijadikan sebagai ruang cakera kongsian bagi kontena-kontena di dalam sesebuah pod.

Ruang nama[sunting | sunting sumber]

Kubernetes menyediakan penyekatan (partitioning) sumber-sumber yang diurusnya kepada set-set yang tidak bertindih dipanggil ruang nama (namespace). Ia bertujuan untuk digunakan di dalam persekitaran yang mempunyai ramai pengguna dari pelbagai pasukan, projek, mahupun persekitaran berasingan seperti persekitaran pembangunan, ujian dan pengeluaran (production).

Rujukan[sunting | sunting sumber]

  1. ^ "First GitHub commit for Kubernetes". github.com. 2014-06-07. Diarkibkan daripada yang asal pada 2017-03-01. 
  2. ^ "GitHub Releases page". github.com. 2018-12-03. 
  3. ^ a b c "What is Kubernetes?". Kubernetes (dalam bahasa Inggeris). Dicapai 2017-03-31. 
  4. ^ "kubernetes/kubernetes". GitHub (dalam bahasa Inggeris). Diarkibkan daripada yang asal pada 2017-04-21. Dicapai 2017-03-28. 
  5. ^ "Kubernetes v1.12: Introducing RuntimeClass". kubernetes.io (dalam bahasa Inggeris). 2018-10-10. Dicapai 2019-02-18. 
  6. ^ "Google Made Its Secret Blueprint Public to Boost Its Cloud" (dalam bahasa Inggeris). Diarkibkan daripada yang asal pada 2016-07-01. Dicapai 2016-06-27. 
  7. ^ "Google Open Sources Its Secret Weapon in Cloud Computing". Wired. Diarkibkan daripada yang asal pada 10 September 2015. Dicapai 24 September 2015. 
  8. ^ a b Abhishek Verma; Luis Pedrosa; Madhukar R. Korupolu; David Oppenheimer; Eric Tune; John Wilkes (April 21–24, 2015). "Large-scale cluster management at Google with Borg". Proceedings of the European Conference on Computer Systems (EuroSys). Diarkibkan daripada yang asal pada 2017-07-27. 
  9. ^ "Borg, Omega, and Kubernetes - ACM Queue". queue.acm.org. Diarkibkan daripada yang asal pada 2016-07-09. Dicapai 2016-06-27. 
  10. ^ "Early Stage Startup Heptio Aims to Make Kubernetes Friendly". Dicapai 2016-12-06. 
  11. ^ "As Kubernetes Hits 1.0, Google Donates Technology To Newly Formed Cloud Native Computing Foundation". TechCrunch. Diarkibkan daripada yang asal pada 23 September 2015. Dicapai 24 September 2015. 
  12. ^ "Cloud Native Computing Foundation". Diarkibkan daripada yang asal pada 2017-07-03. 
  13. ^ Conway, Sarah. "Kubernetes Is First CNCF Project To Graduate" (html). Cloud Native Computing Foundation (dalam bahasa Inggeris). Diarkibkan daripada yang asal pada 29 October 2018. Dicapai 3 December 2018. Compared to the 1.5 million projects on GitHub, Kubernetes is No. 9 for commits and No. 2 for authors/issues, second only to Linux. 
  14. ^ Sharma, Priyanka (13 April 2017). "Autoscaling based on CPU/Memory in Kubernetes—Part II". Powerupcloud Tech Blog. Medium. Dicapai 27 December 2018. 
  15. ^ "Configure Kubernetes Autoscaling With Custom Metrics". Bitnami. BitRock. 15 November 2018. Dicapai 27 December 2018. 
  16. ^ a b c "An Introduction to Kubernetes". DigitalOcean. Diarkibkan daripada yang asal pada 1 October 2015. Dicapai 24 September 2015. 
  17. ^ https://kubernetes.io/docs/concepts/workloads/pods/pod/
  18. ^ Langemak, Jon (2015-02-11). "Kubernetes 101 – Networking". Das Blinken Lichten. Diarkibkan daripada yang asal pada 2015-10-25. Dicapai 2015-11-02. 

Pautan luar[sunting | sunting sumber]