Docker - Kerjaan Kubernetes
Hai sana, para ahli teknologi masa depan! Saya begitu gembira menjadi panduanmu dalam perjalanan menarik ini ke dunia Kubernetes. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun tahun, saya bisa 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 dalam!
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 pisahkan itu.
Bayangkan Anda menjalankan layanan pengiriman pizza yang 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 cadangan jika mobil sopir Anda rusak.
Konsep Utama
Sebelum kita masuk ke detilnya, mari kita familiarisasi dengan beberapa konsep Kubernetes utama:
- Pods: Unit pemasangan terkecil di Kubernetes.
- Nodes: Mesin kerja di dalam kластer Kubernetes.
- Cluster: Satu set node yang menjalankan aplikasi kontainerisasi.
- Control Plane: Otak Kubernetes yang mengelola kластer.
Bagaimana Kubernetes Bekerja
Sekarang kita memiliki bahan dasar kita, mari lihat bagaimana Kubernetes menggabungkannya menjadi suatu teknologi lezat!
1. Control Plane
Control Plane seperti chef utama di dapur kita. Itu bertanggung jawab untuk membuat keputusan global tentang kластer dan mendeteksi serta merespon peristiwa kластer.
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 mengandung komponen utama Control Plane. Dalam praktik nyata, komponen ini biasanya akan berjalan di mesin terpisah untuk ketersediaan tinggi.
2. Nodes
Node adalah para pekerja keras di dalam 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 diprovinsi oleh penyedia awan Anda atau infrastruktur on-premises.
3. Pods
Pods adalah tempat di mana magik terjadi! Itu adalah unit pemasangan terkecil di Kubernetes, biasanya mengandung 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 image "my-app:1.0" dan menampilkan port 8080.
Kubernetes Dalam Aksi
Sekarang kita memiliki bahan siap, mari lihat bagaimana Kubernetes mengorkestrasikan mereka semua!
- 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 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 dia, teman-teman! Kita telah melakukan perjalanan singkat ke Kubernetes, dari komponen dasarnya hingga bagaimana itu menjaga aplikasi kontainerisasi Anda berjalan mulus. Ingat, seperti belajar memasak hidangan kompleks, menguasai Kubernetes memerlukan waktu dan latihan. Tetapi dengan kegigihan dan kecurigaan, Anda akan mengorkestrasi kontainer seperti seorang ahli dalam waktu singkat!
Saat kita menutup, saya teringat tentang seorang murid yang pernah katakan kepadaku, "Kubernetes seperti mengherdi kucing, tapi kucing itu adalah kontainer, dan Kubernetes adalah pengherdi kucing terbaik di dunia." Saya tidak bisa mengatakan lebih baik dari itu!
Terus jelajah, terus belajar, dan terutama, terus bersenang-senang dengan teknologi. Sampai jumpa lagi, selamat mengelola kontainer!
Credits: Image by storyset