Pengenalan Kubernetes
Hallo folks sudah siap masuk ke materi kubernetes? sejujurnya saya juga masih perlahan-perlahan untuk memahami Kubernetes karena di sini sudah sangat kompleks sekali untuk manage container, kalo kata kita mah ngejelimet.
Sesuai pengertian nya, Kubernetes merupakan platform open-source yang digunakan untuk melakukan manajemen workloads aplikasi yang dikontainerisasi, serta menyediakan konfigurasi dan otomatisasi secara deklaratif. Kubernetes berada di dalam ekosistem yang besar dan berkembang cepat. Service, support, dan perkakas Kubernetes tersedia secara meluas. Kubernetes di buat oleh Google sebagai proyek open source pada tahun 2014 dan di maintenance oleh CNCF.
Kubernetes support untuk Docker, CRI-O, Containerd, dan runtime CRI lainnya seperti Frakti. Manage Kubernetes Service yang tersedia juga cukup banyak :
Amazon Elastic Kubernetes Service (EKS)
Google Kubernetes Engine (GKE)
Azure Kubernetes Service (AKS)
Open Shift Enterprise Kubernetes
untuk versi light nya yang bisa kita gunakan belajar/testing di local machine yaitu gunakan Minikube.
Kubernetes Components
Di luar cluster ada nama nya kubectl. kubectl ini merupakan command line yang di install di host tugas nya memanage kubernetes cluster
Kubernetes Control Plane
tugas utama di control plane yaitu memanage nodes nodes yang ada.
Kube-Api-server merupakan frontend dari control plane. jadi antara control plane dan nodes berkomunikasi melalui kube-api-server.
Etcd ini merupakan storage temporary data berbentuk file untuk menyimpan share configuration yang ingin digunakan.
Kube-scheduler ini bertugas memantau pod-pod yang sudah di buat yang belum di assign ke node.
Kube-controller-manager ini bertugas untuk menjalankan proses controller.
cloud-controller-manager ini bertugas untuk menjalankan controller yang berinteraksi dengan provider cloud.
Kubernetes Nodes
Di dalam 1 Pod terdapat 1 atau lebih container. Dalam 1 Pod container dapat berkomunikasi langsung, namun jika berbeda pod container berkomunikasi antar pod. Pod terletak di Kubernetes Nodes.
Selain pod di Kubernetes Nodes ada nama nya kubelet. Kubelet bertugas untuk menstart sebuah pod dan bertanggung jawab untuk memastikan container yang ada di dalam pod tersebut running.
Selain itu ada kube-proxy yang bertugas menjadi network proxy yang running di setiap node.
Kubernetes Object
object pada kubernetes merupakan entitas yang merepresentasikan state dari cluster. Jadi maksud seperti mengkondisikan state dalam cluster itu mau bagaimana, sebuah object di susun menggunakan format Yaml. Pembuatan object, atau penghapusan nanti menggunakan perintah kubectl.
Setiap object membutuhkan value yang wajib ada seperti:
apiVersion : version API Kubernetes
kind : objek apa yang ingin di buat, Deployment kah, Replicaset kah dll.
metadata : data yang digunakan untuk identifikasi objek termasuk nama, UUID, dan namespace.
Install Kubernetes Minikube
Tools yang diperlukan untuk run k8s di lokal