Memahami Deployment
Pelajari cara Deployment mengotomatiskan pengelolaan Pod dan ReplicaSets untuk aplikasi tanpa status.
Memahami Deployment adalah pelajaran Kubernetes Basics gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kubernetes Basics, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kubernetes Basics mencakup 4 pelajaran total.
Apa Itu Deployment?
Selamat datang! Di Kubernetes, mengelola aplikasi berarti mengelola Pod-nya. Namun, mengelola Pod individual secara langsung atau bahkan ReplicaSets dapat menjadi rumit.
Deployment adalah objek tingkat lebih tinggi yang menyederhanakan pengelolaan aplikasi tanpa status. Anggap saja sebagai pengelola aplikasi Anda.
- Deployment menentukan keadaan yang diinginkan untuk aplikasi Anda.
- Deployment memastikan keadaan tersebut dipertahankan, bahkan jika Pod mengalami kegagalan.
- Deployment mengotomatiskan pembaruan dan pengembalian versi.
Mengapa Menggunakan Deployment?
Deployment memberikan keuntungan besar untuk menjalankan aplikasi secara andal di Kubernetes:
- Pengelolaan Otomatis: Deployment menangani pembuatan, penskalaan, dan penghapusan Pod.
- Pemulihan Otomatis: Jika sebuah Pod mengalami kerusakan, Deployment secara otomatis menggantinya untuk mempertahankan jumlah replika yang diinginkan.
- Pembaruan Deklaratif: Anda menjelaskan keadaan baru yang diinginkan, lalu Deployment menentukan cara mencapainya (misalnya, meluncurkan versi baru secara bertahap).
Deployment adalah cara yang direkomendasikan untuk mengelola aplikasi tanpa status.
Peran Inti Deployment
Pada intinya, Deployment mengelola ReplicaSets. Tugas ReplicaSet adalah memastikan sejumlah replika Pod yang ditentukan selalu berjalan.
Jadi, Deployment menggunakan ReplicaSets untuk mencapai tujuannya: memastikan aplikasi Anda memiliki jumlah Pod sehat yang tepat dan berjalan sesuai definisi Anda.
Abstraksi ini membuat penentuan dan pemeliharaan siklus hidup aplikasi jauh lebih mudah.
Anatomi YAML Deployment
Seperti kebanyakan objek Kubernetes, Deployment didefinisikan menggunakan YAML. Berikut bagian-bagian utama yang biasanya akan Anda temukan:
apiVersiondankind: Mengidentifikasi jenis objek (Deployment).metadata: Nama, label, dan sebagainya untuk Deployment itu sendiri.spec: Definisi inti, termasuk:replicas: Jumlah Pod yang diinginkan.selector: Cara Deployment menemukan Pod yang dikelolanya.template: Cetak biru untuk Pod yang akan dibuat.
Templat Pod
Kolom template dalam spec sebuah Deployment sangat penting. Pada dasarnya, kolom ini merupakan definisi Pod yang lengkap.
Setiap Pod yang dibuat oleh Deployment ini akan menggunakan templat tersebut. Artinya, Anda menentukan:
- Image container yang akan digunakan.
- Port yang akan diekspos.
- Variabel lingkungan.
- Permintaan dan batas sumber daya.
- Dan lainnya!
Perubahan pada templat ini memicu pembaruan pada aplikasi Anda.
Membuat Deployment Sederhana
Mari kita definisikan Deployment untuk server web Nginx sederhana. Kita menginginkan 3 replika.
Perhatikan bahwa selector.matchLabels harus sama dengan template.metadata.labels. Ini memberi tahu Deployment Pod mana yang dimilikinya.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Menerapkan Deployment
Untuk membuat Deployment ini di klaster Kubernetes (misalnya, Minikube), Anda menggunakan perintah kubectl apply. Simpan YAML di atas sebagai nginx-deployment.yaml.
kubectl akan membuat objek Deployment. Pengendali Deployment kemudian melihat objek ini dan mengambil tindakan dengan membuat ReplicaSet, yang selanjutnya membuat 3 Pod Nginx.
kubectl apply -f nginx-deployment.yamlMemeriksa Deployment Anda
Setelah diterapkan, Anda dapat memeriksa status Deployment dan Pod yang dikelolanya:
kubectl get deployments: Menampilkan Deployment Anda.kubectl get replicasets: Menampilkan ReplicaSet yang dibuat oleh Deployment.kubectl get pods -l app=nginx: Menampilkan Pod yang dikelola oleh Deployment (melalui pemilih labelnya).kubectl describe deployment my-nginx-deployment: Menyediakan informasi terperinci tentang Deployment, termasuk peristiwa.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deploymentMempertahankan Keadaan yang Diinginkan
Salah satu fitur Deployment yang paling ampuh adalah kemampuannya mempertahankan keadaan yang diinginkan. Jika Anda menentukan replicas: 3, Deployment akan memastikan 3 Pod selalu berjalan.
Cobalah menghapus salah satu Pod Nginx secara manual (kubectl delete pod <pod-name>). Anda akan melihat Deployment segera membuat Pod baru untuk menggantikannya! Inilah contoh pemulihan otomatis.
Pemeriksaan Singkat
Deployment terutama digunakan untuk mengelola jenis aplikasi apa?
Ringkasan: Memahami Deployment
Kerja bagus! Anda telah mengambil langkah pertama dengan Deployment Kubernetes.
- Deployment adalah objek tingkat tinggi untuk mengelola aplikasi tanpa status.
- Deployment mengotomatiskan pembuatan, penskalaan, dan pemulihan otomatis Pod dengan mengelola ReplicaSets.
- Anda mendefinisikan Deployment menggunakan manifes YAML, dengan menentukan jumlah
replicasyang diinginkan dantemplateuntuk Pod. kubectl applymembuat Deployment, sedangkankubectl get/describemembantu Anda memantaunya.
Selanjutnya, kita akan membahas ReplicaSets lebih dalam dan cara ReplicaSets menjamin jumlah Pod yang Anda inginkan!
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Memahami Deployment” gratis?
Ya — teks lengkap “Memahami Deployment” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kubernetes Basics, upgrade ke CoddyKit PRO. Kursus Kubernetes Basics mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Memahami Deployment”?
Pelajari cara Deployment mengotomatiskan pengelolaan Pod dan ReplicaSets untuk aplikasi tanpa status. Kamu berlatih Kubernetes Basics dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kubernetes Basics?
Tidak diperlukan pengalaman sebelumnya. Kubernetes Basics di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Memahami Deployment” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kubernetes Basics ini?
Ya. Setiap pelajaran Kubernetes Basics menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Memahami Deployment
- Menskalakan Aplikasi dengan ReplicaSets
- Pembaruan Bergulir dan Pengembalian Versi
- Strategi Deployment: Blue-Green dan Canary