Kubernetes

Daripada Wikipedia, ensiklopedia bebas.
Kubernetes
PembangunYayasan Pengkomputeran Asli Awan
Pelancaran pertama7 Jun 2014; 9 tahun yang lalu (2014-06-07)[1]
Keluaran stabil
1.13[2] / 3 Disember 2018; 5 tahun yang lalu (2018-12-03)
Repositori Sunting ini di Wikidata
Bahasa pengaturcaraanGo
JenisPerisian pengurusan gugusan
LesenLesen Apache 2.0
Tapak webkubernetes.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. Unknown parameter |deadurl= ignored (bantuan)
  2. ^ "GitHub Releases page". github.com. 2018-12-03. Unknown parameter |deadurl= ignored (bantuan)
  3. ^ a b c "What is Kubernetes?". Kubernetes (dalam bahasa Inggeris). Dicapai pada 2017-03-31.
  4. ^ "kubernetes/kubernetes". GitHub (dalam bahasa Inggeris). Diarkibkan daripada yang asal pada 2017-04-21. Dicapai pada 2017-03-28. Unknown parameter |deadurl= ignored (bantuan)
  5. ^ "Kubernetes v1.12: Introducing RuntimeClass". kubernetes.io (dalam bahasa Inggeris). 2018-10-10. Dicapai pada 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 pada 2016-06-27. Unknown parameter |deadurl= ignored (bantuan)
  7. ^ "Google Open Sources Its Secret Weapon in Cloud Computing". Wired. Diarkibkan daripada yang asal pada 10 September 2015. Dicapai pada 24 September 2015. Unknown parameter |deadurl= ignored (bantuan)
  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. Unknown parameter |deadurl= ignored (bantuan)
  9. ^ "Borg, Omega, and Kubernetes - ACM Queue". queue.acm.org. Diarkibkan daripada yang asal pada 2016-07-09. Dicapai pada 2016-06-27. Unknown parameter |deadurl= ignored (bantuan)
  10. ^ "Early Stage Startup Heptio Aims to Make Kubernetes Friendly". Dicapai pada 2016-12-06.[pautan mati kekal]
  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 pada 24 September 2015. Unknown parameter |deadurl= ignored (bantuan)
  12. ^ "Cloud Native Computing Foundation". Diarkibkan daripada yang asal pada 2017-07-03. Unknown parameter |deadurl= ignored (bantuan)
  13. ^ Conway, Sarah. "Kubernetes Is First CNCF Project To Graduate". Cloud Native Computing Foundation (dalam bahasa Inggeris). Diarkibkan daripada yang asal (html) pada 29 October 2018. Dicapai pada 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. Unknown parameter |deadurl= ignored (bantuan)
  14. ^ Sharma, Priyanka (13 April 2017). "Autoscaling based on CPU/Memory in Kubernetes—Part II". Powerupcloud Tech Blog. Medium. Dicapai pada 27 December 2018.
  15. ^ "Configure Kubernetes Autoscaling With Custom Metrics". Bitnami. BitRock. 15 November 2018. Diarkibkan daripada yang asal pada 2019-03-27. Dicapai pada 27 December 2018.
  16. ^ a b c "An Introduction to Kubernetes". DigitalOcean. Diarkibkan daripada yang asal pada 1 October 2015. Dicapai pada 24 September 2015. Unknown parameter |deadurl= ignored (bantuan)
  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 pada 2015-11-02. Unknown parameter |deadurl= ignored (bantuan)

Pautan luar[sunting | sunting sumber]