Mengenal Replication Controller Pada Kubernetes

By | Mei 30, 2020

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.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *