Docker - Kerja Kubernetes
Hai teman-teman, para ahli teknologi masa depan! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ke dunia Kubernetes. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun tahun, saya dapat menjamin bahwa meskipun Kubernetes mungkin terdengar seperti makhluk mistis dari film fiksi ilmiah, sebenarnya itu adalah alat yang kuat dan revolusioner dalam mengelola aplikasi kontainerisasi. Jadi, mari kita masuk ke dalamnya!
Apa Itu Kubernetes?
Kubernetes, sering disingkat menjadi K8s (karena ada 8 huruf antara 'K' dan 's'), adalah platform orkestrasi kontainer open-source. Saya tahu itu terdengar seperti banyak hal, mari kita perincikan itu.
Bayangkan Anda menjalankan layanan pengiriman pizza besar. Anda memiliki banyak pesanan (aplikasi) yang masuk, dan Anda perlu mengelola sopir pengirim Anda (kontainer) secara efisien. Kubernetes seperti manajer super cerdas Anda yang menentukan sopir mana yang mengambil pesanan mana, memastikan selalu ada cukup sopir di jalan, dan bahkan memanggil bantuan cadangan jika mobil sopir rusak.
Konsep Utama
Sebelum kita masuk ke detilnya, mari kenal beberapa konsep utama Kubernetes:
- Pods: Unit pemasangan terkecil di Kubernetes.
- Nodes: Mesin kerja di dalam klaster Kubernetes.
- Klaster: Satu set node yang menjalankan aplikasi kontainerisasi.
- Control Plane: Otak Kubernetes yang mengelola klaster.
Cara Kerja Kubernetes
Sekarang kita memiliki bahan dasar, mari lihat bagaimana Kubernetes membuatnya menjadi teknologi yang lezat!
1. Control Plane
Control Plane seperti koki utama di dapur kita. Itu bertanggung jawab untuk membuat keputusan global tentang klaster dan mendeteksi serta merespon peristiwa klaster.
apiVersion: v1
kind: Pod
metadata:
name: control-plane-pod
spec:
containers:
- name: kube-apiserver
image: k8s.gcr.io/kube-apiserver:v1.21.0
- name: kube-controller-manager
image: k8s.gcr.io/kube-controller-manager:v1.21.0
- name: kube-scheduler
image: k8s.gcr.io/kube-scheduler:v1.21.0
File YAML ini menentukan Pod yang berisi komponen utama Control Plane. Dalam kasus nyata, komponen ini biasanya akan berjalan di mesin terpisah untuk ketersediaan tinggi.
2. Nodes
Node adalah para pekerja keras di sarang Kubernetes kita. Itu adalah mesin yang menjalankan aplikasi kontainerisasi kita.
apiVersion: v1
kind: Node
metadata:
name: worker-node-1
spec:
podCIDR: 10.244.1.0/24
status:
capacity:
cpu: "2"
memory: 4Gi
YAML ini menjelaskan Node dengan 2 CPU dan 4GB memori. Dalam praktek, Anda biasanya tidak akan membuat Node secara manual - mereka akan diprovisi oleh penyedia awan Anda atau infrastruktur on-premises.
3. Pods
Pods adalah tempat magis terjadi! Itu adalah unit pemasangan terkecil di Kubernetes, biasanya berisi satu atau lebih kontainer.
apiVersion: v1
kind: Pod
metadata:
name: my-awesome-app
spec:
containers:
- name: my-app-container
image: my-app:1.0
ports:
- containerPort: 8080
YAML ini menentukan Pod bernama "my-awesome-app" dengan satu kontainer. Kontainer ini didasarkan pada gambar "my-app:1.0" dan menampilkan port 8080.
Kubernetes dalam Aksi
Sekarang kita memiliki bahan siap, mari lihat bagaimana Kubernetes mengorkestrasikan semuanya!
- Anda mengirimkan aplikasi Anda ke Kubernetes (biasanya dalam bentuk file YAML).
- API server Control Plane menerima permintaan ini.
- Scheduler menentukan node mana yang memiliki cukup sumber daya untuk menjalankan aplikasi Anda.
- Kubelet di node yang dipilih membuat Pod dan memulai kontainer(s).
- Control Plane terus memonitor keadaan semua Pod dan Node.
Jika Pod gagal, Kubernetes dapat secara otomatis memulai ulangnya. Jika Node gagal, Kubernetes dapat memesan ulang semua Pod yang berjalan di node itu ke node lain yang sehat. Itu seperti memiliki tim pelayan super perhatian yang memastikan pengalaman makan Anda sempurna!
Metode Kubernetes
Berikut adalah tabel dari beberapa metode Kubernetes yang umum:
Metode | Deskripsi |
---|---|
kubectl create | Buat sumber daya dari file atau stdin |
kubectl get | Tampilkan satu atau banyak sumber daya |
kubectl describe | Tampilkan informasi detil tentang sumber daya |
kubectl delete | Hapus sumber daya |
kubectl apply | Terapkan konfigurasi ke sumber daya |
kubectl logs | Cetak log untuk kontainer di pod |
kubectl exec | Eksekusi perintah di kontainer |
kubectl port-forward | Teruskan satu atau lebih port lokal ke pod |
Kesimpulan
Dan itu adalah, teman-teman! Kita telah melakukan perjalanan singkat melalui Kubernetes, dari komponen dasarnya hingga bagaimana itu menjaga aplikasi kontainerisasi Anda berjalan mulus. Ingat, seperti belajar memasak makanan kompleks, menguasai Kubernetes memerlukan waktu dan praktek. Tetapi dengan kegigihan dan keingintahuan, Anda akan mengorkestrasikan kontainer seperti seorang pro dalam waktu singkat!
Saat kita selesaikan, saya teringat tentang seorang murid yang pernah katakan kepadaku, "Kubernetes seperti mengherding kucing, tapi kucing itu adalah kontainer, dan Kubernetes adalah pengherding kucing terbaik di dunia." Saya tidak bisa mengatakan lebih baik daripada itu!
Terus jelajah, terus belajar, dan yang paling penting, terus bersenang-senang dengan teknologi. Sampaijumpa lagi, selamat mengelola kontainer!
Credits: Image by storyset