Tutorial Kubernetes untuk Pemula: Dasar-dasar, Fitur, Architekstur

Sebelum kita memulai tutorial Kubernetes ini, mari kita pelajari:

Apa itu Kubernet?

Kubernetes adalah sistem manajemen kontainer yang dikembangkan pada platform Google. Kubernetes membantu mengelola aplikasi yang dikontainerisasi dalam berbagai jenis lingkungan fisik, virtual, dan cloud. Google Kubernetes adalah alat kontainer yang sangat fleksibel untuk secara konsisten menyediakan aplikasi kompleks yang berjalan pada kluster yang terdiri dari ratusan hingga ribuan server individual.

Mengapa Anda membutuhkan kontainer?

Pengguna internet saat ini tidak pernah menerima downtime. Oleh karena itu pengembang harus menemukan metode untuk melakukan pemeliharaan dan pembaruan tanpa mengganggu layanan mereka.

Oleh karena itu, kontainer adalah lingkungan yang terisolasi. Kontainer mencakup semua yang dibutuhkan agar aplikasi dapat berjalan. Kontainer memudahkan pengembang untuk mengedit dan menyebarkan aplikasi. Selain itu, kontainerisasi telah menjadi metode yang disukai untuk mengemas, menyebarkan, dan memperbarui aplikasi web.

Tugas apa yang dilakukan oleh Kubernetes?

Kubernetes adalah kernel Linux yang digunakan untuk sistem terdistribusi. Ini membantu Anda untuk mengabstraksi perangkat keras yang mendasari node (server) dan menawarkan antarmuka yang konsisten untuk aplikasi yang menggunakan kumpulan sumber daya bersama.

Mengapa menggunakan Kubernet?

Kubernetes membantu Anda mengontrol alokasi sumber daya dan manajemen lalu lintas untuk aplikasi cloud dan layanan mikro. Hal ini juga membantu menyederhanakan berbagai aspek infrastruktur yang berorientasi layanan. Kubernetes memungkinkan Anda memastikan di mana dan kapan aplikasi dalam container dijalankan dan membantu Anda menemukan sumber daya dan alat yang ingin Anda gunakan.

Fitur Kubernetes

Berikut adalah fitur-fitur penting Kubernetes:

  • Penjadwalan Otomatis
  • Kemampuan Penyembuhan Diri
  • Peluncuran & pengembalian otomatis
  • Penskalaan Horizontal & Penyeimbangan Beban
  • Menawarkan konsistensi lingkungan untuk pengembangan, pengujian, dan produksi
  • Infrastruktur digabungkan secara longgar sehingga setiap komponen dapat bertindak sebagai unit terpisah
  • Memberikan kepadatan pemanfaatan sumber daya yang lebih tinggi
  • Menawarkan fitur yang siap digunakan perusahaan
  • Manajemen yang berpusat pada aplikasi
  • Infrastruktur yang dapat diskalakan secara otomatis
  • Anda dapat membuat infrastruktur yang dapat diprediksi

Dasar-dasar Kubernetes

Sekarang dalam tutorial Kubernetes ini, kita akan mempelajari beberapa Dasar-dasar penting Kubernetes:

  • Cluster

    Ini adalah kumpulan host (server) yang membantu Anda mengumpulkan sumber daya yang tersedia. Itu termasuk ram, CPU, ram, disk, dan perangkatnya ke dalam kumpulan yang dapat digunakan.

  • Menguasai

    Master adalah kumpulan komponen yang membentuk panel kontrol Kubernetes. Komponen-komponen ini digunakan untuk semua keputusan klaster. Komponen ini mencakup penjadwalan dan respons terhadap peristiwa klaster.

  • Node

    Ini adalah host tunggal yang mampu berjalan secara fisik atau mesin virtualSuatu node harus menjalankan kube-proxy, minikube, dan kubelet yang dianggap sebagai bagian dari kluster.

  • Namespace

    Ini adalah cluster atau lingkungan logis. Ini adalah metode yang banyak digunakan untuk pelingkupan akses atau membagi cluster.

Kubernetes Architekstur

Berikut ini adalah diagram arsitektur Kubernetes yang terperinci:

Kubernetes Archidiagram tekstur
Kubernetes Archidiagram tekstur

Master Node

Node induk merupakan komponen pertama dan terpenting yang bertanggung jawab atas pengelolaan klaster Kubernetes. Node induk merupakan titik masuk untuk semua jenis tugas administratif. Mungkin ada lebih dari satu node induk dalam klaster untuk memeriksa toleransi kesalahan.

Node master memiliki berbagai komponen seperti Server API, Manajer Pengontrol, Penjadwal, dan ETCD. Mari kita lihat semuanya.

Server API: Server API bertindak sebagai titik masuk untuk semua perintah REST yang digunakan untuk mengendalikan cluster.

Penjadwal

Penjadwal menjadwalkan tugas ke node budak. Ini menyimpan informasi penggunaan sumber daya untuk setiap node budak. Ini bertanggung jawab untuk mendistribusikan beban kerja.

Ini juga membantu Anda melacak bagaimana beban kerja digunakan pada node kluster. Ini membantu Anda menempatkan beban kerja pada sumber daya yang tersedia dan menerima beban kerja tersebut.

dll

Komponen dlld menyimpan detail konfigurasi dan nilai wright. Ia berkomunikasi dengan sebagian besar komponen untuk menerima perintah dan bekerja. Ia juga mengelola aturan jaringan dan aktivitas penerusan port.

Node Pekerja/Budak

Node pekerja adalah komponen penting lainnya yang berisi semua layanan yang diperlukan untuk mengelola jaringan antar container, berkomunikasi dengan node master, yang memungkinkan Anda menetapkan sumber daya ke container terjadwal.

  • Kubelet: mendapatkan konfigurasi Pod dari server API dan memastikan bahwa container yang dijelaskan sudah aktif dan berjalan.
  • Kontainer Docker: Buruh pelabuhan container berjalan di setiap node pekerja, yang menjalankan pod yang dikonfigurasi
  • Kube-proxy: Kube-proxy bertindak sebagai penyeimbang beban dan proxy jaringan untuk melakukan layanan pada satu node pekerja
  • Pod: Pod adalah kombinasi dari satu atau beberapa container yang secara logis berjalan bersama pada node

Terminologi Penting Lainnya

Pengontrol Replikasi

Pengontrol replikasi adalah sebuah objek yang mendefinisikan templat pod. Ia juga mengontrol parameter untuk menskalakan replika Pod yang identik secara horizontal dengan menambah atau mengurangi jumlah salinan yang berjalan.

Set Replikasi

Set replikasi adalah interaksi pada desain pengontrol replikasi dengan fleksibilitas dalam cara pengontrol mengenali pod yang ingin dikelolanya. Ini menggantikan pengontrol replikasi karena kemampuan pemilihan replikasinya yang lebih tinggi.

penyebaran

Deployment adalah beban kerja umum yang dapat langsung dibuat dan dikelola. Penerapan menggunakan replikasi yang ditetapkan sebagai blok penyusun yang menambahkan fitur manajemen siklus hidup.

Himpunan Berstatus

Ini adalah kontrol pod khusus yang menawarkan keteraturan dan keunikan. Ini terutama digunakan untuk memiliki kontrol yang sangat baik, yang Anda perlukan khusus terkait urutan penerapan, jaringan yang stabil, dan data yang persisten.

Set Daemon

Set daemon merupakan bentuk khusus lain dari pengontrol pod yang menjalankan salinan pod pada setiap node dalam kluster. Jenis pengontrol pod ini merupakan metode efektif untuk menyebarkan pod yang memungkinkan Anda melakukan pemeliharaan dan menawarkan layanan untuk node itu sendiri.

Kubernetes vs. Kawanan Docker

Berikut adalah perbedaan penting antara keduanya Kubernet vs Docker.

Parameter Kawanan Docker Kubernetes
Scaling Tanpa Penskalaan Otomatis Penskalaan otomatis
Penyeimbang beban Apakah penyeimbangan beban otomatis Konfigurasikan pengaturan penyeimbangan beban Anda secara manual
Pembagian volume penyimpanan Berbagi volume penyimpanan dengan kontainer lainnya Membagi volume penyimpanan antara beberapa kontainer di dalam Pod yang sama
Penggunaan alat login dan pemantauan Gunakan 3rd alat pesta seperti ELK Menyediakan alat bawaan untuk pencatatan dan pemantauan.
Instalasi Mudah & cepat Rumit & memakan waktu
GUI GUI tidak tersedia GUI tersedia
Skalabilitas Peningkatan skala lebih cepat daripada K8S, tetapi kekuatan cluster tidak sekuat itu Peningkatan skala lambat dibandingkan dengan Swarm, tetapi menjamin status cluster yang lebih kuat Penyeimbangan beban memerlukan konfigurasi layanan manual
Penyeimbang beban Menyediakan teknik penyeimbangan beban bawaan Proses penjadwalan untuk mempertahankan layanan saat memperbarui
Pembaruan & Pengembalian Pencatatan & Pemantauan Volume Data Pembaruan progresif dan pemantauan kesehatan layanan. Hanya dibagikan dengan container di alat logging & pemantauan bawaan Pod yang sama.

Keunggulan Kubernet

  • Organisasi layanan yang mudah dengan pod
  • Ini dikembangkan oleh Google, yang menghadirkan pengalaman industri yang berharga selama bertahun-tahun
  • Komunitas terbesar di antara alat orkestrasi kontainer
  • Menawarkan berbagai opsi penyimpanan, termasuk lokal, SAN, dan cloud publik
  • Mematuhi prinsip-prinsip infrastruktur yang tidak dapat diubah
  • Kubernetes dapat menjalankan bare metal lokal, OpenStack, cloud publik Google, Azure, AWS, Dll
  • Membantu Anda menghindari masalah penguncian vendor karena Kubernetes dapat menggunakan API atau layanan khusus vendor apa pun kecuali jika Kubernetes menyediakan abstraksi, misalnya penyeimbang beban dan penyimpanan.
  • Kontainerisasi menggunakan kubernetes memungkinkan perangkat lunak paket untuk mencapai tujuan ini. Ini akan memungkinkan aplikasi yang perlu dirilis dan diperbarui tanpa downtime.
  • Kubernetes memungkinkan Anda memastikan aplikasi dalam container tersebut berjalan di mana dan kapan pun Anda inginkan dan membantu Anda menemukan sumber daya dan alat yang ingin Anda gunakan.

Kekurangan Kubernetes

  • Dasbor Kubenetes tidak berguna sebagaimana mestinya
  • Kubernetes sedikit rumit dan tidak diperlukan dalam lingkungan di mana semua pengembangan dilakukan secara lokal.
  • Keamanan tidak terlalu efektif.

Ringkasan

  • Kontainer membantu organisasi melakukan pemeliharaan dan pembaruan tanpa mengganggu layanan
  • Kubernetes adalah contoh sistem manajemen container yang dikembangkan di platform Google.
  • Keuntungan terbesar menggunakan Kubernetes adalah ia dapat menjalankan OpenStack lokal, cloud publik Google, Azure, AWS, dll.
  • Kubernetes menawarkan Kemampuan Penjadwalan dan Pemulihan Mandiri otomatis.
  • Cluster, master, node, dan namespace adalah dasar penting dari kubernetes
  • Node master dan node kerja merupakan komponen penting arsitektur Kubernetes.
  • Pengontrol Replikasi, Kumpulan Replikasi, Deployment, Kumpulan Stateful, Kumpulan Daemon adalah istilah penting lainnya yang digunakan di Kubernetes.
  • Kawanan Docker tidak mengizinkan penskalaan otomatis sementara Kubernetes mengizinkan penskalaan otomatis.
  • Kelemahan terbesar Kubenetes adalah dashboardnya tidak terlalu berguna dan efektif