Kubernetes
Tutorial Kubernetes Series 2 — Pengenalan Kubernetes
Apa itu Kubernetes (?)
Kubernetes adalah aplikasi untuk automation deployment, scaling dan manajemen aplikasi berbasis container. Aplikasi ini Open Source dan saat ini paling populer di jenis nya. Banyak perusahaan-perusahaan besar yang sudah menggunakan kubernetes, termasuk perusahaan Unicorn di Indonesia.
Sejarah Kubernetes
Bertahun-tahun Google membuat internal sistem yang bernama Borg (kemudian berganti nama menjadi Omega). Sistem ini digunakan untuk developer dan infa engineer untuk me-manage ribuan server yang ada di Google. Tahun 2014 Google memperkenalkan Kubernetes, Open Source System yang berasal dari pengalaman Bord, Omega dan internal system lainnya.
Alur Kerja Menggunakan Kubernetes
Secara singkat ini alur kerja kita menggunakan kubernetes.
Pertama, Developer/infra/devops engineer buat sebuah file konfigurasi (Configuration file) yang mendefinisikan aplikasi kita. contoh, image aplikasi yang ingin digunakan apa, container nya mau berapa banyak, konsumsi CPU nya berapa, konsumsi memori nya berapa, jika sudah mencapai threshold ingin scaling menjadi berapa node maksimum berapa node, minimumnya berapa node dan beberapa detail lainnya.
Contoh dari gambar ini, kita akan deploy 2 aplikasi. jadi dalam sebuah config file terdiri dari aplikasi A (kuning) dan aplikasi B (hijau). aplikasi kuning saya set jumlah node nya 3 dan aplikasi hijau saya set jumlah node nya 2.
selanjutnya, konfigurasi file ini kita buat dalam ekstensi/format YAML atau JSON. Saat ini yang paling sering digunakan adalah format YAML.
Jika anda penasaran, berikut saya lampirkan contoh file konfigurasi kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: db
image: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
- name: wp
image: wordpress
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
Terakhir, kita cukup buat sebuah konfig file dan kita upload ke kubernetes master (seperti gerbang sistem kubernetes), nanti server kubernetes master ini yang akan me-manage ribuan kubernetes workers/nodes yang bisa dijalankan didalam cloud services maupun bare-metal server. dan kita tidak perlu mengetahui kompleksitas.
Kubernetes Master akan menyuruh kubernetes workers untuk menjalankan aplikasi-aplikasi mana saja yang mau di jalankan pada workers tersebut. Jadi, kita tidak perlu set-up VM berkali-kali. Dan kita hanya perlu defenisikan kebutuhan aplikasi kita pada konfig file tersebut dan submit/upload pada Kubernetes Master.