Isi
PendahuluanApa itu Docker?Apa itu Container?Apa itu orkestrasi Container?Alat orkestrasi ContainerApa itu Kubernetes?Mengapa pasar merekomendasikan KubernetesArsitektur KubernetesKomponen KubernetesPesawat kontrolServer APISchedulerManajer pengontrolDll Kubernetes, juga dikenal sebagai k8s atau kube, adalah alat Orkestrasi kontainer paling populer di industri yang merupakan produk buatan Google. Tutorial Kubernetes ini terdiri dari artikel seri tentang Kubernetes. Pada bagian pertama, kita akan membahas apa itu Kubernetes dan konsep dasar Kubernetes.
Kursus ini untuk pemula mutlak, Anda tidak perlu memiliki pengetahuan yang diperlukan untuk mempelajari teknologi ini. Kami akan memandu Anda melalui semua dasar-dasar Kubernetes untuk membuat Anda memahami konsepnya.
Sebelum memulai dengan Kubernetes, mari kita memiliki pemahaman dasar tentang Docker dan Containers.
Apa itu Docker?
Docker memungkinkan Anda untuk menggabungkan dan menjalankan aplikasi dalam sebuah wadah, yang adalah lingkungan yang terisolasi secara longgar. Karena isolasi dan keamanan, Anda dapat mengoperasikan beberapa container pada satu host.
Untuk menjalankan beberapa kontainer pada OS yang sama, Docker memanfaatkan isolasi sumber daya di kernel OS. Biasanya orang membandingkan Docker dengan Mesin Virtual (VM).
VMs, di sisi lain, menyertakan seluruh sistem operasi dengan kode yang dapat dieksekusi di atas lapisan abstraksi sumber daya perangkat keras fisik.
Apa itu Container?
A container image adalah paket perangkat lunak siap pakai yang mencakup semua yang dibutuhkan program jalankan, termasuk kode dan waktu proses apa pun yang diperlukan, pustaka aplikasi dan sistem, dan nilai default untuk pengaturan penting apa pun.
Applications dipisahkan dari arsitektur host yang mendasarinya menggunakan container. Seperti yang ditunjukkan pada diagram berikut, kita dapat memiliki beberapa kontainer di atas mesin Docker yang menggunakan mesin yang mendasarinya. Ini memfasilitasi penerapan di berbagai sistem Operasi atau skenario Cloud.
Containers membantu bisnis memodernisasi dengan mempermudah penskalaan dan penerapan aplikasi. Namun, dengan membangun lingkungan infrastruktur yang benar-benar baru, container telah menghadirkan masalah dan kompleksitas tambahan.
Ribuan instance container digunakan setiap hari oleh organisasi perangkat lunak besar dan kecil, yang menimbulkan tantangan skalabilitas bagi mereka untuk dikelola. Jadi, bagaimana mereka melakukannya?
Apa itu orkestrasi Container?
Orkestrasi Container berkaitan dengan pengelolaan siklus hidup container, khususnya di lingkungan yang besar dan dinamis. Orkestrasi container digunakan oleh tim perangkat lunak untuk mengontrol dan mengotomatisasi berbagai tugas pada manajemen container.Orkestrasi container berfungsi dalam konteks apa pun tempat container digunakan. Ini dapat membantu Anda dalam menerapkan program yang sama di beberapa lingkungan tanpa harus menulis ulang. Alat orkestrasi container
Teknologi orkestrasi container menawarkan kerangka kerja untuk mengontrol arsitektur container dan layanan mikro. Manajemen siklus hidup container dapat dicapai dengan berbagai solusi orkestrasi container. Kubernetes, Docker Swarm, dan Apache Mesos adalah tiga solusi/alat yang umum.
Docker Swarm adalah alat asli Docker, yang sangat mudah diatur dan dikonfigurasi. Kubernetes memerlukan sejumlah intervensi manual untuk mengonfigurasi komponennya seperti etcd, flannel, dan mesin buruh pelabuhan.
Kubernetes mendominasi industri ini karena berbagai keunggulan dan fiturnya dibandingkan dengan alat lain.
Apa itu Kubernetes?
Kubernetes adalah teknologi orkestrasi container open-source yang awalnya dikembangkan oleh Google untuk mengotomatiskan penerapan, penskalaan, dan administrasi aplikasi dalam container.
Kubernetes mempermudah penerapan dan pengelolaan aplikasi arsitektur layanan mikro. Ini menyelesaikan ini dengan membentuk lapisan abstraksi di atas sebuah cluster, memungkinkan tim pengembangan untuk menyebarkan aplikasi dengan lancar sementara Kubernetes menangani tugas-tugas berikut terutama:
Mengontrol dan mengelola penggunaan sumber daya oleh aplikasi. Memuat permintaan penyeimbangan di antara banyak instance aplikasi secara otomatis .Memantau penggunaan sumber daya dan batas sumber daya untuk secara otomatis menghentikan aplikasi dari mengonsumsi sumber daya dalam jumlah berlebihan dan melanjutkannya kembali.Jika sumber daya host habis atau host mati, mentransfer instans aplikasi dari satu host ke host lain adalah opsi yang layak. host ditambahkan ke cluster, sumber daya tambahan secara otomatis dapat diakses.Mengapa pasar merekomendasikan Kubernetes
Kubernetes, inisiatif Cloud Native Cloud Foundation (CNCF) pertama dan yayasan Google, adalah proyek perangkat lunak sumber terbuka yang tumbuh paling cepat setelah Linux.
Mengapa begitu banyak perusahaan mengandalkan Kubernetes untuk memenuhi kebutuhan orkestrasi container mereka hari ini y? Ada banyak alasan untuk ini:
Portabilitas dan fleksibilitas : Kubernetes sangat mudah beradaptasi, karena dapat berjalan di berbagai infrastruktur dan pengaturan lingkungan. Kebanyakan orkestra lain tidak memiliki fleksibilitas ini; mereka terkunci pada runtime atau infrastruktur tertentu. Open Source : CNCF bertanggung jawab atas Kubernetes, yang merupakan proyek berbasis komunitas yang sepenuhnya open source. Kubernetes memiliki sejumlah sponsor korporat yang signifikan, tetapi tidak ada satu perusahaan pun yang "memiliki" platform atau memiliki kendali tunggal atas perkembangannya. Kompatibilitas multi-cloud : Kubernetes dapat meng-host beban kerja di satu cloud serta beban kerja yang didistribusikan di banyak cloud. Kubernetes juga dapat dengan mudah menskalakan lingkungannya dari satu cloud ke cloud berikutnya. Sementara orkestra lain mungkin mendukung arsitektur multi-cloud, Kubernetes bisa dibilang melampaui dan melampaui dalam hal kemampuan beradaptasi multi-cloud. Marker Leader : Hampir semua orang menggunakan Kubernetes. Menurut survei REDHAT, Kubernetes digunakan secara luas oleh pelanggan (88%), khususnya dalam situasi produksi (74%).Arsitektur Kubernetes
Kubernetes adalah contoh sistem terdistribusi yang telah dirancang dengan baik. Ini menganggap semua mesin dalam sebuah cluster menjadi bagian dari kumpulan sumber daya tunggal.
Kubernetes, seperti sistem terdistribusi canggih lainnya, memiliki dua lapisan: node kepala dan node pekerja.
Head node atau Master node terdiri dari Control Plane dan aplikasi node pekerja. Cluster Kubernetes dibentuk oleh kumpulan node kepala dan pekerja.
Kubernetes memperkenalkan banyak terminologi untuk menggambarkan struktur aplikasi Anda. Kita akan membahas setiap node term.
Kubernetes komponen
Master/Head node dan node Worker terdiri dari komponennya sendiri yang memastikan Orchestration berjalan dengan lancar.
Control plane
Control plane adalah tempat administrator dan pengguna pergi untuk mengelola node yang berbeda. Ia menerima perintah melalui panggilan HTTP atau dengan menghubungkan ke sistem dan menjalankan skrip baris perintah. Ini mengatur bagaimana Kubernetes berinteraksi dengan aplikasi Anda, seperti namanya.
API server
Server API memberi cluster Kubernetes antarmuka REST. Semua aktivitas pada pod, layanan, dan objek lainnya dilakukan secara terprogram dengan berbicara dengan titik akhir yang disediakan.
Scheduler
Penjadwal bertanggung jawab untuk mengalokasikan tugas ke berbagai node. Ini memantau kapasitas sumber daya dan menjamin bahwa kinerja node pekerja tetap dalam batas yang dapat diterima.
Controller manager
Manajer pengontrol Kubernetes adalah layanan yang mengelola loop kontrol inti Kubernetes. Bertanggung jawab untuk memastikan bahwa status bersama cluster berfungsi dengan baik.
Etcd
Kubernetes menggunakan etcd, penyimpanan nilai kunci terdistribusi, untuk berbagi informasi tentang status keseluruhan cluster.
Node
Node adalah mesin, baik fisik maupun virtual, tempat POD dijalankan . Control plane mengelola setiap node dalam sebuah cluster dan node tersebut terdiri dari layanan yang diperlukan untuk menjalankan PODs.
Pods
A Pod Kubernetes adalah kumpulan container yang dikelola Kubernetes pada skala terkecil. Pod memiliki satu alamat IP yang ditetapkan ke semua container di dalam Pod. Memori dan sumber daya penyimpanan container dalam sebuah pod digunakan bersama. Sebuah Pod dapat memiliki satu container juga ketika aplikasi memiliki satu proses.
Kubelet
Kubelet adalah komponen node pekerja. Tugasnya adalah melacak pod dan wadahnya. Ini berkaitan dengan spesifikasi pod yang ditulis dalam YAML atau JSON. Kubelet memeriksa spesifikasi pod dan menentukan apakah pod sehat atau tidak.
Kube-Proxy
Kube-proxy adalah proxy jaringan dan penyeimbang beban yang bertindak sebagai koneksi antara setiap node dan server api. Ini beroperasi pada setiap node di cluster Anda dan memungkinkan Anda untuk terhubung ke pod dari dalam dan luarnya.
Kubectl
Kubectl adalah alat CLI untuk Kubernetes. Ini digunakan untuk menyebarkan aplikasi, memantau dan mengontrol sumber daya cluster, dan melihat log.
Dari sudut pandang pengguna, kubectl adalah panel kontrol Anda untuk Kubernetes. Ini memungkinkan Anda untuk melakukan semua operasi Kubernetes. Dari segi teknis, Kubectl adalah klien untuk Kubernetes API.
Conclusion
Dalam artikel ini, kita telah membahas konsep dasar dari Container Orchestration dan arsitektur Kubernetes. Setelah kita mempelajari konsep teoritis Kubernetes, kita mungkin mengerti bahwa salah satu topik tersulit Kubernetes adalah instalasi. Kita akan membahas instalasi Single Node Kubernetes di artikel berikutnya. Nantikan.
Resources:
https://kubernetes.io/docs/home/https://www.redhat.com/en/topics/containers/what-is-kubernetes