GNU/Linux >> Belajar Linux >  >> Ubuntu

Apa itu Kubernetes? Panduan Lengkap

Pendahuluan

Penyebaran kontainer telah mengubah praktik pengembangan perangkat lunak yang sudah mapan. Alat dan teknik baru diperlukan agar Google mengembangkan Kubernetes, sistem orkestrasi container open-source untuk penskalaan otomatis, penerapan, dan pengelolaan aplikasi.

Ini menyediakan antarmuka API terpadu yang dapat mengelola bahkan sistem yang paling rumit, tersebar di beberapa server dan platform.

Cari tahu apa yang menjadikan Kubernetes sebagai alat yang sangat diperlukan untuk mengelola dan men-deploy container.

Apa itu Orkestrasi Kontainer?

A alat orkestrasi wadah , seperti Kubernetes, mengotomatiskan pengelolaan container di lingkungan yang terus berubah dan kacau. Untuk memahami sepenuhnya perannya, kita akan mempelajari lebih dalam kompleksitas lingkungan container.

Wadah adalah lingkungan virtual kecil dengan memori individu, file sistem, dan ruang pemrosesan. Mereka tidak memerlukan sistem operasi mereka sendiri dan jauh lebih ringan daripada mesin virtual tradisional . Ukuran dan kemandiriannya menjadikannya portabel dan dapat diskalakan tanpa batas di berbagai perangkat dan sistem operasi.

Pengembang sekarang dapat mendesain aplikasi sebagai kumpulan layanan mikro independen yang lebih kecil. Idealnya, satu layanan seharusnya hanya melakukan satu fungsi. Layanan mikro ini kemudian digabungkan dan diterapkan dengan cepat dan mudah di kluster Kubernetes.

Bagaimana Kubernetes Bekerja?

Wadah dirancang untuk menjadi seringan mungkin. Akibatnya, mereka rapuh dan fana. Alih-alih meningkatkan daya tahan container individual, Kubernetes menggunakan sifat container yang tidak stabil dan mengubah kelemahan tersebut menjadi aset.

Kubernetes hanya membutuhkan kerangka umum tentang seperti apa tampilan cluster Anda. Kerangka kerja ini biasanya merupakan file manifes dasar yang Anda berikan ke Kubernetes menggunakan alat antarmuka baris perintah.

Antarmuka baris perintah Kubernetes default disebut kubectl . Kubectl digunakan untuk mengelola sumber daya cluster secara langsung dan memberikan instruksi ke server Kubernetes API. Server API kemudian secara otomatis menambahkan dan menghapus container di cluster Anda untuk memastikan status yang diinginkan yang ditentukan dan status cluster yang sebenarnya selalu cocok.

Elemen utama dari cluster Kubernetes adalah Master Node , Node Pekerja , dan Pod . Komponen yang membuat keputusan global tentang cluster, seperti server API, terletak di Master Node.

Node Master Kubernetes

Node adalah mesin fisik atau VM. Master Node adalah lapisan orkestrasi wadah dari sebuah cluster. Komponen Master Node mengelola Worker Node dan menetapkan tugas individu untuk masing-masing. Ini bertanggung jawab untuk membangun dan memelihara komunikasi dalam cluster dan untuk beban kerja penyeimbangan beban.

Simpul Utama

Server API Server API berkomunikasi dengan semua komponen dalam cluster.
Penyimpanan Nilai Kunci (dst) Penyimpanan nilai kunci terdistribusi ringan yang digunakan untuk mengumpulkan semua data cluster.
Pengontrol Menggunakan Server API untuk memantau status cluster. Ia mencoba untuk memindahkan status kluster yang sebenarnya agar sesuai dengan status yang diinginkan dari file manifes Anda.
Penjadwal Menjadwalkan pod yang baru dibuat ke node pekerja. Selalu pilih node dengan lalu lintas paling sedikit untuk menyeimbangkan beban kerja.

Node Pekerja Kubernetes

Komponen Master Node mengontrol Worker Node . Ada beberapa contoh Worker Node, masing-masing melakukan tugas yang ditugaskan. Node ini adalah mesin tempat beban kerja dalam container dan volume penyimpanan dikerahkan.

Simpul Pekerja

Kubelet Daemon yang berjalan pada setiap node dan merespons permintaan master untuk membuat, menghancurkan, dan memantau pod pada mesin tersebut.
Waktu Proses Penampung Waktu proses container mengambil gambar dari registri gambar kontainer dan memulai dan menghentikan kontainer. Ini biasanya software atau plugin pihak ketiga, seperti Docker.
Kube-proxy Proxy jaringan yang menjaga komunikasi jaringan ke Pod Anda dari dalam atau dari luar cluster.
Pengaya (DNS, UI Web..) Fitur tambahan yang dapat Anda tambahkan ke cluster untuk memperluas fungsionalitas tertentu.
Pod Sebuah pod adalah elemen penjadwalan terkecil di Kubernetes. Ini mewakili 'pembungkus' untuk wadah dengan kode aplikasi. Jika Anda perlu menskalakan aplikasi Anda dalam cluster Kubernetes, Anda hanya dapat melakukannya dengan menambahkan atau menghapus pod. Sebuah node dapat menampung banyak pod.

Cara Mengelola Cluster Kubernetes

Kubernetes memiliki beberapa instrumen yang digunakan pengguna atau komponen internal untuk mengidentifikasi, mengelola, dan memanipulasi objek dalam cluster Kubernetes.

Label

Label adalah pasangan kunci/nilai sederhana yang dapat ditetapkan ke pod. Setelah ditetapkan, pod lebih mudah diidentifikasi dan dikontrol. Label mengelompokkan dan mengatur pod dalam subset yang ditentukan pengguna. Kemampuan untuk mengelompokkan pod dan memberi mereka pengidentifikasi yang berarti meningkatkan kontrol pengguna atas sebuah cluster.

Anotasi

Sama seperti label, anotasi juga merupakan pasangan kunci/nilai dan dapat digunakan untuk melampirkan metadata ke objek. Namun, Kubernetes tidak menggunakan anotasi untuk memilih dan mengidentifikasi objek.

Anotasi menyimpan informasi yang tidak dimaksudkan untuk digunakan oleh sumber daya internal Kubernetes. Mereka dapat berisi informasi kontak administrator, gambar umum atau info build, lokasi data tertentu, atau tip untuk logging. Dengan anotasi, informasi yang berguna ini tidak perlu lagi disimpan di sumber daya eksternal, sehingga meningkatkan kinerja.

Ruang nama di Kubernetes

Setiap objek dalam cluster Kubernetes memiliki ID unik dan nama yang menunjukkan jenis sumber dayanya. Sebuah ruang nama digunakan untuk memisahkan sekelompok sumber daya. Setiap nama dalam namespace harus unik untuk menghentikan masalah tabrakan nama. Tidak ada batasan seperti itu saat menggunakan nama yang sama di ruang nama yang berbeda.

Fitur khusus ini memungkinkan Anda menyimpan instance terpisah dari objek yang sama, dengan nama yang sama, dalam lingkungan terdistribusi.

Untuk membuat daftar ruang nama yang ada di cluster ketik perintah berikut di antarmuka baris perintah Anda:

kubectl get namespaces

Pengontrol Replikasi

Konsep layanan mikro secara implisit berarti bahwa beberapa contoh dari setiap layanan yang diberikan perlu dikerahkan dan dijalankan secara bersamaan. Pengontrol replikasi mengelola jumlah replika untuk setiap instance pod tertentu. Dengan menggabungkan pengontrol replikasi dengan label yang ditentukan pengguna, Anda dapat dengan mudah mengelola jumlah pod dalam sebuah cluster dengan menggunakan label yang sesuai.

Misalnya, kita dapat mengatur jumlah replika dalam file konfigurasi kita menjadi lima (5). Jika hanya ada tiga (3) replika yang berjalan saat ini, Kubernetes akan memutar dua (2) lagi agar sesuai dengan keadaan yang kita inginkan. Jika 10 replika berjalan, Kubernetes akan menghentikan lima (5) di antaranya.

Kubernetes terus bekerja untuk menyelaraskan jumlah replika dengan jumlah yang ditentukan dalam file konfigurasi Anda.

Penerapan

dpekerjaan adalah mekanisme yang meletakkan template yang memastikan pod aktif dan berjalan, diperbarui, atau dibatalkan seperti yang ditentukan oleh pengguna. Deployment dapat melebihi satu pod dan tersebar di beberapa pod.

Pengontrol replikasi mengontrol jumlah replika layanan. Pod ditambahkan atau dihapus dari cluster secara teratur. Selama proses ini, Pod sering berpindah di sekitar cluster dan bahkan ditempatkan di node yang berbeda. Karena fakta ini, alamat IP pod tidak konstan. Layanan Kubernetes menggunakan pemilih label untuk mengelompokkan pod dan mengabstraksikannya dengan satu IP virtual yang digunakan untuk menemukan pod ini dan berinteraksi dengannya.

Mengapa Anda Membutuhkan Kubernetes?

Penggunaan Sumber Daya yang Efisien

Alat orkestrasi container, seperti Kubernetes, menghemat sumber daya lebih efisien daripada yang bisa dilakukan manusia. Kubernetes memantau cluster dan membuat pilihan tempat peluncuran container Anda berdasarkan sumber daya yang saat ini digunakan di node Anda.

Komunikasi dan Sinkronisasi Kontainer

Karena sebuah aplikasi sering kali membutuhkan lebih dari satu container, Kubernetes dapat menerapkan aplikasi multi-kontainer dan memastikan bahwa semua container disinkronkan dan berkomunikasi satu sama lain.

Kubernetes menawarkan wawasan tentang kesehatan aplikasi Anda. Ini dapat memberikan informasi dan metrik penting dari container dan cluster Anda. Saat aplikasi mati, Kubernetes secara otomatis memulihkannya dengan memutar container lain dengan waktu henti minimal dengan penggunaan sumber daya sistem yang optimal.

Beradaptasi Secara Efisien

Tanpa alat orkestrasi, penskalaan aplikasi Anda akan menjadi proses yang memakan waktu. Organisasi sekarang dapat dengan cepat beradaptasi dengan kebutuhan pasar dengan menambahkan atau menghapus kontainer tergantung pada beban kerja sesaat. Misalnya, pengecer online dapat langsung meningkatkan kapasitas aplikasi mereka selama permintaan meningkat. Dalam periode permintaan yang lebih rendah, administrator dapat dengan cepat menurunkan skala aplikasi.

Cara Memulai Dengan Kubernetes

Karena Kubernetes adalah sistem untuk menyiapkan dan mengoordinasikan container, prasyarat untuk menggunakannya adalah memiliki mesin containerization .

Ada banyak solusi kontainer yang Docker adalah yang paling populer saat ini. Penyedia penampung lainnya termasuk AWS, LXD , Java Container , Wadah Hyper-V , dan Penampung Server Windows .

Selain container, ada proyek dan dukungan lain yang Kubernetes andalkan untuk memberikan pengalaman penuh kepada penggunanya. Beberapa di antaranya adalah:

  • Docker atau Atomic Registry (untuk registry resmi)
  • Bisa (untuk otomatisasi)
  • OpenvSwitch dan perutean tepi cerdas (untuk jaringan)
  • LDAP, SELinux, RBAC, dan OAUTH dengan lapisan multi-tenancy (untuk keamanan Kubernetes)
  • Heapster, Kibana, Hawkular, dan Elastis (untuk telemetri)

Untuk pemula yang masih belum memiliki pengalaman menggunakan banyak container, Minikube adalah cara yang bagus untuk memulai. Minikube adalah sistem untuk menjalankan cluster node tunggal secara lokal dan sangat baik untuk mempelajari dasar-dasarnya, sebelum beralih ke Kubernetes.

Jika Anda ingin mempelajari lebih lanjut tentang Ansible dan Kubernetes, lihat artikel kami tentang perbedaan Ansible vs Kubernetes.


Ubuntu
  1. Apa itu Helm? Bagan Helm dan Helm Dijelaskan

  2. Apa Itu CentOS – Panduan Pemula

  3. Siapkan cluster Kubernetes dengan Rancher

  1. Cara Mengatur Cluster Kubernetes dengan Rancher

  2. Terraform vs Kubernetes:Apa Perbedaannya?

  3. Cara Menyebarkan Cluster Redis di Kubernetes

  1. Grep Regex:Panduan Lengkap

  2. Cara Upgrade ke Ubuntu 22.04 LTS (Panduan Lengkap)

  3. Apa itu Ubuntu? Panduan Cepat untuk Pemula