Bagikan :
clip icon

Kubernetes Basics – Panduan Lengkap Deploy Aplikasi dengan Container Orchestration

AI Morfo
foto : Morfogenesis Teknologi Indonesia Creative Team
Kubernetes telah menjadi standar de facto untuk mengelola aplikasi berbasis kontainer di lingkungan produksi. Bagi developer maupun operator sistem, kemampuan melakukan deployment aplikasi secara konsisten dan terukur merupakan kunci keberhasilan implementasi cloud native. Artikel ini akan membahas langkah demi langkah proses deployment aplikasi di klaster Kubernetes, mulai dari penulisan manifest YAML hingga praktik terbaik untuk menjaga ketersediaan layanan.

Pertama-tama, penting untuk memahami komponen utama Kubernetes yang terlibat saat deployment. Pod, yang menjadi unit terkecil, berisi satu atau beberapa kontainer yang saling berbagi resource dan jaringan. Deployment, sebagai objek API, bertugas menjamin jumlah replika Pod sesuai keinginan serta menyediakan strategi rolling update. Service kemudian memberikan endpoint stabil berupa IP virtual atau DNS agar Pod yang bersifat dinamis tetap dapat dijangkau. Namespace memungkinkan isolasi lingkungan kerja, sedangkan ConfigMap dan Secret memisahkan konfigurasi dari image kontainer agar aplikasi lebih mudah dipindah antar lingkungan.

Sebelum membuat manifest, pastikan kubectl terkonfigurasi dan terhubung ke klaster. Buat berkas deployment.yaml sederhana berikut untuk menjalankan aplikasi web nginx versi stabil:
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoh-nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25-alpine
ports:
- containerPort: 80
Simpan berkas tersebut, lalu terapkan dengan perintah kubectl apply -f deployment.yaml. Kubernetes akan menarik image dari registry, membuat Pod, lalu menjalankan health check bawaan.

Langkah berikutnya mengekspos aplikasi agar dapat diakses dari luar klaster melalui objek Service. Contoh service.yaml berikut menggunakan tipe NodePort yang memetaskan port 30080 pada setiap worker node ke port 80 di Pod:
apiVersion: v1
kind: Service
metadata:
name: contoh-nginx-service
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 30080
Setelah menerapkan Service, uji konektivitas dengan curl http://IP_NODE:30080. Perlu dicatat bahwa di lingkungan cloud, tipe LoadBalancer lebih umum karena cloud provider akan memprovisikan IP publik dan melakukan distribusi lalu lintas otomatis.

Untuk memperkenankan aplikasi berevolusi tanpa downtime, gunakan strategi rolling update bawaan Deployment. Cukup ubah image di manifest lalu jalankan kubectl apply -f deployment.yaml. Kubernetes secara bertahap akan mematikan Pod lama sambil menaikkan Pod baru sesuai parameter maxSurge dan maxUnavailable. Misalnya, dengan nilai maxSurge: 1 dan maxUnavailable: 0, klaster akan menambah satu Pod baru sebelum mematikan Pod lama sehingga kapasitas layanan tetap penuh. Tambahkan juga readinessProbe dan livenessProbe agar Pod baru menerima lalu lintas hanya setelah aplikasi siap serta melakukan restart otomatis bila terjadi kegagalan.

Praktik terbaik lainnya mencakup pemanfaatan Horizontal Pod Autoscaler (HPA) untuk penyesuaian replika berdasarkan CPU atau metrik khusus. Definisikan HPA dengan kubectl autoscale deployment contoh-nginx --cpu-percent=70 --min=3 --max=10 agar aplikasi dapat menangani lonjakan traffic secara elastis. Simpan manifest di repositori Git untuk mengadopsi GitOps, sehingga setiap perubahan terekam dan dapat di-review. Terakhir, terapkan resource request dan limit agar Pod tidak merebut seluruh CPU memori node, serta gunakan PodDisruptionBudget untuk menjamin ketersediaan selama proses maintenance node.

Menguasai dasar deployment di Kubernetes adalah fondasi penting menuju arsitektur yang tangguh dan auto-healing. Dengan memahami interaksi antar Pod, Service, serta strategi rolling update, developer dapat merilis fitur baru lebih cepat sambil menjaga ketersediaan tinggi. Mulai dari lingkungan lokal menggunakan minikube hingga klaster produksi di cloud, latihan terus menerus akan memperkaya pengalaman dan meminimalkan risiko kegagalan saat menghadapi skala yang lebih besar.

Ingin fokus pada pengembangan aplikasi tanpa khawatir mengelola infrastruktur Kubernetes? Morfotech.id siap membantu merancang, membangun, dan mengoptimalkan aplikasi cloud native sesuai kebutuhan bisnis Anda. Hubungi tim profesional kami di WhatsApp +62 811-2288-8001 atau kunjungi https://morfotech.id untuk konsultasi gratis dan penawaran menarik.
Sumber:
AI Morfotech - Morfogenesis Teknologi Indonesia AI Team
Minggu, September 28, 2025 6:11 AM
Logo Mogi