Sebagai praktisi DevOps, kita sering berhadapan dengan Native Kubernetes maupun Managed Kubernetes seperti Amazon EKS. Kedua opsi tersebut memiliki perbedaan operasional yang nyata. Oleh karena itu, artikel ini mengulas tiga prinsip utama Kubernetes beserta perbandingannya.

1. Konsep Desired State Management

Prinsip fundamental Kubernetes berpusat pada desired state atau kondisi yang diinginkan. Melalui pendekatan ini, Anda mendefinisikan kondisi ideal aplikasi di dalam klaster. Selanjutnya, sistem akan terus menjaga agar kondisi riil selalu cocok dengan deklarasi tersebut.

Sistem ini bekerja secara otomatis tanpa henti. Sebagai contoh, jika suatu proses tiba-tiba mati, Kubernetes langsung menyalakannya kembali. Dengan demikian, keandalan sistem tetap terjaga meski terjadi gangguan infrastruktur.

Dahulu pada sistem Unix, teknisi harus masuk konsol tengah malam untuk menangani crash. Namun, otomatisasi Kubernetes kini memulihkan layanan secara mandiri. Alhasil, waktu istirahat tim teknis menjadi jauh lebih tenang.

Secara teknis, konsep ini meningkatkan efisiensi operasional cloud-native. Mari kita pelajari mekanismenya lewat penerapan NGINX Deployment menggunakan perintah kubectl.

Perintah tersebut akan segera membuat Pod NGINX baru. Anda dapat memverifikasi statusnya lewat perintah kubectl get pod. Pod sendiri bertindak sebagai unit terkecil yang memuat satu atau beberapa kontainer.

Eksperimen Self-Healing pada Pod

Kini kita uji ketangguhan sistem melalui skenario kegagalan buatan. Anda dapat membuka dua jendela terminal secara berdampingan. Jendela atas berfungsi menghapus Pod, sedangkan jendela bawah memantau perubahan status secara langsung via opsi -w.

Setelah perintah eksekusi berjalan, Pod lama langsung dihapus oleh sistem. Namun, jendela bawah memperlihatkan Pod pengganti dibuat seketika.

Kubernetes langsung mendeteksi penghentian kontainer tersebut. Kemudian, kontroler ReplicaSet otomatis mengembalikan sistem ke kondisi desired state. Berkat mekanisme self-healing ini, ketersediaan aplikasi tetap terjaga optimal.

2. Pengelolaan Deklaratif Berbasis Kode

Di era komputasi virtual tradisional, instalasi aplikasi umumnya mengandalkan skrip manual bertahap seperti perintah yum.

Sayangnya, metode sekuensial tersebut rentan memicu inkonsistensi sistem (configuration drift). Selain itu, dokumentasi manual kerap tertinggal dari kondisi server yang sebenarnya.

Sebaliknya, arsitektur Kubernetes mengelola seluruh sumber daya menggunakan berkas manifes YAML.

Pendekatan deklaratif ini berfokus pada hasil akhir yang diharapkan. Anda tidak perlu merinci langkah eksekusi teknis satu per satu. Dengan menyimpan konfigurasi dalam bentuk kode (Infrastructure as Code), konfigurasi klaster menjadi seragam dan minim galat.

Selain itu, seluruh perubahan konfigurasi dapat ditinjau via Git Pull Request. Operator pemula pun mudah mempelajarinya karena format sintaks YAML sangat terstruktur dan ringkas.

3. Skalabilitas: Paradigma Pet vs Cattle

Pengelolaan infrastruktur modern mengadopsi analogi Pet vs Cattle (Hewan Peliharaan vs Sapi Ternak). Model Pet menuntut perhatian individual, di mana setiap server diberi nama khusus dan dirawat manual.

Sebaliknya, model Cattle memperlakukan server secara seragam tanpa nama unik. Setiap instance hanya dibedakan lewat label atau kode acak.

Kubernetes menerapkan pendekatan Cattle secara penuh. Sistem ini mengotomatiskan proses rolling update, penskalaan beban, hingga pemulihan otomatis pada kontainer.

Sebagai contoh, komunikasi antar-komponen kini menggunakan abstraksi Kubernetes Service berbasis DNS, bukan alamat IP statis.

Jika IP Pod berubah, Service otomatis memperbarui rute endpoint jaringan. Oleh sebab itu, integrasi aplikasi tetap terhubung stabil tanpa gangguan.

4. Komparasi: Native vs Managed Kubernetes

Di lingkungan on-premise, perusahaan umumnya memakai Vanilla (Native) Kubernetes resmi dari CNCF atau platform komersial. Sementara itu, lingkungan cloud biasanya memanfaatkan solusi Managed Kubernetes seperti AWS EKS, Azure AKS, atau Google GKE.

Tabel berikut merangkum perbedaan operasional keduanya:

Parameter
  • Penyedia Solusi
  • Control Plane
  • Kompleksitas Setup
  • Integrasi Cloud
  • Beban Perawatan
Native Kubernetes
  • Distribusi resmi CNCF
  • Dikelola mandiri penuh
  • Instalasi manual
  • Plugin mandiri
  • Wajib update node & OS
Managed Kubernetes
  • Cloud Provider resmi
  • Dikelola otomatis vendor
  • Instan via CLI / Konsol
  • Terhubung VPC & disk
  • Update terawat otomatis
Fokus Tim DevOps
  • Stabilitas infrastruktur
  • Manajemen beban kerja
  • Konfigurasi klaster
  • Otomasi pipeline CI/CD
Ekosistem Pendukung
  • Helm & Kustomize
  • ArgoCD & Flux
  • Prometheus & Grafana
  • Ingress Controller

Analisis Beban Operasional Kontainer

Perbedaan mendasar kedua model ini terletak pada manajemen control plane. Pada Native Kubernetes, tim internal wajib memasang dan merawat komponen master secara mandiri.

Pada klaster Native, namespace kube-system memuat pod inti seperti kube-apiserver, etcd, dan kube-scheduler. Seluruh komponen tersebut menuntut pemeliharaan rutin dari teknisi.

Sebaliknya, Managed Kubernetes menyembunyikan kompleksitas master node tersebut dari pengguna.

Pada lingkungan Managed Kubernetes, penyedia cloud mengambil alih tanggung jawab control plane. Akibatnya, tampilan pod sistem menjadi jauh lebih bersih.

Meski demikian, aktivitas deployment aplikasi harian di kedua arsitektur tersebut 80% tetap sama. Tim DevOps tetap wajib menguasai ekosistem CNCF seperti Helm, Ingress, dan ArgoCD demi kelancaran operasional.

0 CommentsClose Comments

Leave a comment

Newsletter Subscribe

Get the Latest Posts & Articles in Your Email

We Promise Not to Send Spam:)