Kubernetes merupakan salah satu tools untuk container orchestration yang sangat populer pada saat ini. Pada kali ini TechnoBoard akan membahas Mengenal Replication Controller Pada Kubernetes, yang akan dimulai dari pengertian Replication Controller itu sendiri, kemudian bagaimana cara membuat Replication Controller.
Replication Controller merupakan salah satu komponen kubernetes yang termasuk ke dalam bagian kube controller manager, seperti yang sudah di bahas pada postingan Kubernetes Komponen .
Fungsi dari Replication adalah untuk menjaga jumlah POD yang berjalan tetap sama. Misalnya sobat techno membuat 3 buah POD pada kubernetes, bagaimana jika salah satu dari POD tersebut mati? atau bahkan ketiga POD tersebut mati.
Tentunya hal ini akan menyebabkan aplikasi yang berada dalam POD tersebut tidak dapat diakses. Untuk mengatasi hal ini, kita dapat membuat POD melalui Replication Controller.
Jadi misalnya sobat techno membuat sebuah Replication Controller, lalu mendefinisikan untuk menjalankan 3 POD. Jika ada salah satu POD mati/rusa atau bahkan ketiga PODnya, maka Replication Controller ini akan membuat ulang POD yang rusak tersebut, Sehingga POD akan selalu berjalan.
Selain itu, dengan menggunakan Replication Controller, kita dapat membuat beberapa POD sekaligus dalam satu file manifest saja, tidak perlu membuat POD satu per satu.
Membuat Replication Controller Pada Kubernetes
Seperti pada postingan sebelumnya, untuk membuat sebuah resource pada kubernetes membutuhkan sebuah file. Kali ini admin membuat file dengan nama ReplicationController.yaml. Berikut isi dari filenya.
apiVersion: v1 kind: ReplicationController metadata: name: rc-techno spec: replicas: 3 selector: app: testing template: metadata: name: pod_techno labels: app: testing spec: containers: - name: testing-app image: nginx ports: - containerPort: 80
Pada source code diatas, admin akan membuat sebuah Replication Controller dengan nama RC-Techno. Lalu Replication Controller tersebut akan membuat 3 replikasi POD.
Kemudian, terdapat perintah template, yang dimana fungsi perintah ini untuk mendefinisikan POD pada Replication Controller. POD yang akan dibuat menggunakan nama pod_techno.
Setelah itu, pada bagian spec, terlihat nama container yang akan dibuat, image yang akan digunakan oleh container tersebut serta port yang akan digunakan oleh container tersebut.
Sobat techno semua bisa melihat, pada source di atas terdapat perintah selector dan labels. pertama, labels digunakan untuk menandai resource pada kubernetes. Contohnya pada source code di atas admin menandai POD yang kita buat, dengan label pod_techno.
Seperti yang admin tuliskan sebelumnya, Replication Controller digunakan untuk menjaga agar jumlah POD tetap sama. Nah, agar Replication Controller mengetahui POD mana saja yang harus dijaga jumlahnya, maka diberikan lah label pada POD tersebut. Sehingga terdapat perintah selector untuk memilih POD yang memiliki label tertentu untuk dimonitor.
Setelah sobat techno, membuat file tersebut, maka gunakanlah perintah kubectl untuk membuat Replication Controller.
# kubectl create -f ReplicationController.yaml replicationcontroller/rc-techno created
Melihat Replication Controller
Untuk melihat Replication Controller yang telah dibuat dapat menggunakan perintah berikut.
# kubectl get rc atau menggunakan # kubectl get replicationcontroller
nanti akan muncul output seperti ini
NAME DESIRED CURRENT READY AGE rc-techno 3 3 3 2m21s
NAME menunjukan nama dari replication controller, DESIRED menunjukan jumlah POD yang seharusnya berjalan, yaitu 3 karena pada saat membuat admin mendefinisikan replicas: 3 . CURRENT menandakan jumlah POD yang sedang berjalan yaitu 3. READY adalah jumlah POD yang sudah berjalan dan sudah dapat diakses/digunakan. AGE menunjukan umur dari POD yang telah dibuatm yaitu sekitar 2 menit 21 detik.
Pengujian Replication Controller
Pada langkah sebelumnya admin sudah menunjukan bagaimana cara membuat Replication Controller dan cara melihatnya. Sekarang, admin akan mencoba menghapus salah satu pod, apakah pod tersebut akan otomatis dibuat kembali oleh Replication Controller atau tidak.
Pertama, gunakan perintah kubectl untuk melihat pod yang ada.
# kubectl get pods NAME READY STATUS RESTARTS AGE rc-techno-85kp2 1/1 Running 0 10m rc-techno-mkkwz 1/1 Running 0 10m rc-techno-nkbch 1/1 Running 0 10m
Lalu hapus salah satu pod yang sedang berjalan.
# kubectl delete pods rc-techno-85kp2 pod "rc-techno-85kp2" deleted
Setelah itu, lihatlah kembali pod yang ada pada server.
# kubectl get pods NAME READY STATUS RESTARTS AGE rc-techno-8dczp 0/1 ContainerCreating 0 10s rc-techno-mkkwz 1/1 Running 0 11m rc-techno-nkbch 1/1 Running 0 11m
Terlihat pada output diatas, ketika pod sudah berhasil dihapus, maka pod akan otomatis dibuat kembali.
Demikian postingan technoboard Mengenal Replication Controller Pada Kubernetes. Semoga dapat bermanfaat bagi sobat techno semua. Sampai jumpa di materi kubernetes lainnya. Terima Kasih.