Deployment mewakili sekumpulan Pod yang identik. Deployment menjalankan beberapa salinan aplikasi. Ini secara otomatis menggantikan setiap contoh yang gagal. Ini membantu memastikan bahwa satu atau beberapa instance aplikasi selalu aktif dan berjalan. Deployment dikelola oleh pengontrol Deployment Kubernetes. Deployment menggunakan template Pod, yang berisi spesifikasi untuk Pod-nya.
Deployment Kubernetes adalah objek resource di Kubernetes yang menyediakan update deklaratif untuk aplikasi.
Untuk mengetahui lebih lanjut tentang spesifikasi Deployment, lihat dokumentasi Kubernetes API
Dalam artikel ini, kita akan belajar membuat penerapan di Kubernetes dan melakukan operasi di dalamnya.
Prasyarat
Cluster Kubernetes dengan setidaknya 1 node pekerja.
Jika Anda ingin belajar membuat Cluster Kubernetes, klik di sini. Panduan ini akan membantu Anda membuat cluster Kubernetes dengan 1 Master dan 2 Node di Instans AWS Ubuntu 18l04 EC2.
Apa yang akan kami lakukan
Buat Penerapan
Buat Deployment
Buat file dan tambahkan definisi penerapan berikut di dalamnya.
vim my-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: labels: app: httpd-frontend name: httpd-frontend spec: replicas: 1 selector: matchLabels: app: httpd-frontend template: metadata: labels: app: httpd-frontend spec: containers: - image: httpd:2.4-alpine name: httpd
Dalam contoh ini:
- Deployment bernama httpd-frontend akan dibuat, ditunjukkan dengan
metadata: name
lapangan. - Deployment akan membuat 1 replika Pod, yang ditunjukkan oleh
replicas
lapangan. - Template Pod, atau
spec: template
kolom, menunjukkan bahwa Podnya diberi label
.app: httpd-frontend
- Spesifikasi template Pod, atau
template: spec
kolom, menunjukkan bahwa Pod menjalankan satu container, httpd, yang menjalankan httpd: image pada versi 2.4-alpine.
Gunakan perintah berikut untuk membuat penerapan
kubectl create -f my-deployment.yaml
Setelah Anda membuat penerapan, Anda bisa mendapatkan detailnya menggunakan perintah berikut.
kubectl get deployment | grep httpd-frontend
Deployment membuat kumpulan replika, untuk mencantumkannya gunakan perintah berikut.
kubectl get replicaset | grep httpd-frontend
Pod yang dibuat oleh set replika dapat dicantumkan menggunakan perintah berikut yang akan mencantumkan pod yang cocok dengan nama yang ditentukan.
kubectl get pods | grep httpd-frontend
Sekarang, Anda dapat menguji pembuatan otomatis pod jika yang ada gagal dengan menghapusnya.
Untuk menghapus pod yang ada, gunakan perintah berikut.
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
Pada tangkapan layar di atas, Anda dapat melihat bahwa pod dibuat setelah menghapus pod yang ada.
Sekarang, bahkan jika kumpulan replika dihapus, penerapan akan membuatnya.
Untuk mengujinya, hapus kumpulan replika menggunakan perintah berikut.
kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend
Pada tangkapan layar di atas, Anda dapat melihat bahwa bahkan setelah menghapus kumpulan replika, itu tetap dibuat.
Untuk melihat sedikit lebih banyak informasi tentang pod, "-o wide" dapat digunakan dalam perintah sebagai berikut.
kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend
Untuk mendapatkan informasi lengkap tentang pod tersebut dapat dideskripsikan dengan menggunakan perintah berikut.
kubectl describe pod httpd-frontend
Sekarang, jika Anda tidak lagi membutuhkan aplikasi Anda di-deploy menggunakan penerapan, itu dapat dihapus dengan menghapus penerapan.
Gunakan perintah berikut untuk menghapus penerapan.
kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend
Pada tangkapan layar di atas, Anda dapat melihat bahwa setelah menghapus penerapan itu tidak dibuat. Namun jika Anda menghapus pod atau replika yang dibuat sebagai bagian dari penerapan, maka pod atau replika itu akan dibuat.
Kesimpulan
Dalam artikel ini, kita belajar membuat penerapan dan mencoba operasi penghapusan di Pod, Replicaset, dan Deployment.