Melanjutkan pembahasan arsitektur kubernetes sebelumnya, pembahasan kali ini masih terkait dengan arsitektur kubernetes ya dan berikut lanjutannya:
Objek Kubernetes
Services
Setiap agent dan node membutuhkan object service untuk menghubungkan object kubernetes lainnya secara fleskibel dan scalable. Service merupakan microservice menghandle sedikit trafik tertentu seperti NodePort dan LoadBalancer untuk mendistribusikan request inbound antar banyak Pod.
Service juga menghandle kebijakan request inbound yang juga berguna untuk kontrol resource dan juga sebagai keamanan:
a. Menghubungkan Pod
b. Expose Pod ke internet
c. Menentukan kebijakan akses Pod, dll.
Selain itu service merupakan objek kubernetes yang bisa menghubungkan jaringan antar Pod, diluar Pod, bahkan diluar cluster kubernetes sekalipun.
Pod
Intinya kubernetes itu adalah melakukan orkestrasi lifecycle container. Kubernetes tidak melakukan orkestrasi kontainer tertentu akan tetapi melakukan orkestrasi Pod. Pod merupakan objek terkecil dalam kubernetes, didalam Pod terdapat kontainer yang dijalankan dan Pod juga bersifat Shared IP. Satu segment IP dishare dengan kontainer lainnya didalam Pod tersebut. Selain itu, Pod juga bisa menggunakan lebih dari satu segmen IP. Untuk berkomunikasi satu sama lain yakni dengan menggunakan IPC, loopback interface atau share filesystem.
Sumber gambar: https://kubernetes.io/id/docs/tutorials/kubernetes-basics/explore/explore-intro/
Kontainer
Sementara kubernetes tidak melakukan orkestrasi dalam level kontainer, akan tetapi Anda bisa custom resource kontainer pada section PodSpec. Berikut contoh resource yang bisa Anda custom:
resources:
limits:
cpu: "1"
memory: "4Gi"
requests:
cpu: "0.5"
memory: "500Mi"
Selain kustom resource dari section PodSpec, Anda juga bisa membuat objek ResourceQuota yang bisa mengizinkan batasan hard dan soft untuk diatur dalam namespace. Selain mengubah resource cpu dan ram, Anda juga bisa mengubah batasan objek lainnya.
Review Component
Setelah mengetahui beberapa komponen kubernetes, mari kita coba mengulas review terkait konektifitas komponen kubernetes. Pada gambar dibawah ini terlihat kube-apiserver saja yang berkomunikasi dengan etcd database.
Selain itu, etcd memiliki command etcdctl untuk menangani keperluan database dan komponen jaringan memiliki perintah calicoctl untuk melihat bagaimana cara mengkonfigurasikan jaringan. Sedangkan Felix merupakan agent primary Calico yang ada disetiap Node. Agen/daemon ini bertanggung jawab untuk melakukan monitoring, pemrograman route, konfigurasi ACL dan report state.
Sumber gambar: Course adinusa materi kubernetes
BIRD merupakan daemon dynamic IP Routing yang digunakan oleh Felix untuk membaca state routing dan mendistribusikan informasi antar node cluster dan mengizinkan client untuk berinteraksi dengan berbagai node dalam cluster.
Sekian dan terima kasih.