# Kubernetes Adalah: Pengertian, Cara Kerja, dan Contohnya

> Kubernetes adalah platform open source untuk mengelola kontainer di banyak server. Pahami komponen, cara kerja, Pod, Deployment, dan kapan bisnis perlu.

**URL:** https://www.ciptadusa.com/blog/kubernetes-adalah  
**Type:** blog  
**Author:** PT Cipta Dua Saudara  
**Category:** Teknologi  
**Published:** 2026-11-10  
**Cover:** https://www.ciptadusa.com/media/uploads/blog/2026-11/1794277254138-kubernetes-adalah-20261110.webp  

## Article

Kubernetes adalah platform open source untuk mengelola aplikasi yang berjalan di dalam kontainer. Dokumentasi resminya menyebut Kubernetes sebagai platform yang portabel dan bisa diperluas untuk mengelola beban kerja dan layanan berbasis kontainer, dengan dukungan konfigurasi deklaratif dan otomatisasi ([sumber](https://kubernetes.io/docs/concepts/overview/)).

Jika [Docker](/blog/docker-adalah) dipakai untuk membungkus aplikasi ke dalam kontainer, Kubernetes dipakai untuk menjalankan dan mengatur banyak kontainer itu di banyak server: menyalakan ulang yang mati, membagi beban, dan menambah kapasitas saat trafik naik. Artikel ini membahas pengertian Kubernetes, komponennya, cara kerjanya, istilah yang sering muncul, contoh konfigurasi, dan kapan bisnis sebenarnya perlu memakainya.

## Pengertian Kubernetes

Nama Kubernetes berasal dari bahasa Yunani yang berarti juru mudi atau pilot. Singkatan K8s muncul dari delapan huruf di antara "K" dan "s". Google menjadikan proyek Kubernetes open source pada 2014, dengan menggabungkan lebih dari 15 tahun pengalaman Google menjalankan beban kerja produksi berskala besar ([sumber](https://kubernetes.io/docs/concepts/overview/)).

Saat ini Kubernetes dikelola di bawah Cloud Native Computing Foundation (CNCF). Kubernetes diterima di CNCF pada 10 Maret 2016 dan naik ke tingkat kematangan Graduated pada 6 Maret 2018 ([sumber](https://www.cncf.io/projects/kubernetes/)).

### Kenapa Kubernetes Dibutuhkan?

Dokumentasi Kubernetes menjelaskan masalahnya dengan sederhana: kontainer adalah cara yang baik untuk membungkus dan menjalankan aplikasi, tetapi di produksi kontainer itu harus dikelola agar tidak ada downtime. Jika satu kontainer mati, kontainer lain harus segera menggantikannya ([sumber](https://kubernetes.io/docs/concepts/overview/)). Mengerjakan itu secara manual di banyak server tidak realistis. Kubernetes mengambil alih pekerjaan tersebut.

## Fitur Utama Kubernetes

Berikut kemampuan yang disebut di dokumentasi resmi Kubernetes ([sumber](https://kubernetes.io/docs/concepts/overview/)):

| Fitur | Penjelasan singkat |
|---|---|
| Service discovery dan load balancing | Kontainer bisa diakses lewat nama DNS atau IP sendiri; saat trafik tinggi, beban jaringan dibagi agar deployment tetap stabil |
| Orkestrasi storage | Memasang sistem penyimpanan pilihan secara otomatis, misalnya storage lokal atau penyedia cloud publik |
| Rollout dan rollback otomatis | Anda menulis kondisi yang diinginkan, lalu Kubernetes mengubah kondisi aktual secara bertahap |
| Automatic bin packing | Anda menentukan kebutuhan CPU dan memori tiap kontainer, lalu Kubernetes menempatkannya di node agar sumber daya terpakai optimal |
| Self-healing | Menyalakan ulang kontainer yang gagal, mengganti kontainer, dan mematikan kontainer yang tidak lolos health check |
| Manajemen secret dan konfigurasi | Menyimpan data sensitif seperti password dan token, serta mengubah konfigurasi tanpa membangun ulang image |
| Batch execution | Menjalankan pekerjaan batch dan CI, termasuk mengganti kontainer yang gagal |
| Horizontal scaling | Menambah atau mengurangi jumlah instance aplikasi lewat perintah, UI, atau otomatis berdasarkan pemakaian CPU |

### Yang Bukan Tugas Kubernetes

Kubernetes bukan Platform as a Service (PaaS) lengkap. Dokumentasinya menyatakan Kubernetes tidak men-deploy source code dan tidak membangun aplikasi Anda, dan tidak menyediakan layanan level aplikasi seperti database, cache, atau message bus sebagai layanan bawaan ([sumber](https://kubernetes.io/docs/concepts/overview/)). Artinya, pipeline build, database, dan pemantauan tetap harus disiapkan sendiri atau dipilih dari ekosistemnya.

## Komponen Kubernetes

Sebuah cluster Kubernetes terdiri dari satu control plane dan satu atau lebih worker node ([sumber](https://kubernetes.io/docs/concepts/overview/components/)).

| Komponen | Letak | Fungsi |
|---|---|---|
| kube-apiserver | Control plane | Server inti yang menyediakan HTTP API Kubernetes |
| etcd | Control plane | Penyimpanan key-value yang konsisten dan sangat tersedia untuk semua data API server |
| kube-scheduler | Control plane | Mencari Pod yang belum punya node, lalu menempatkannya di node yang cocok |
| kube-controller-manager | Control plane | Menjalankan controller yang menerapkan perilaku API Kubernetes |
| kubelet | Setiap node | Memastikan Pod dan kontainernya berjalan |
| kube-proxy (opsional) | Setiap node | Mengatur aturan jaringan di node untuk menjalankan Service |
| Container runtime | Setiap node | Perangkat lunak yang menjalankan kontainer |

Semua isi tabel di atas diringkas dari halaman komponen di dokumentasi resmi Kubernetes ([sumber](https://kubernetes.io/docs/concepts/overview/components/)).

Untuk berinteraksi dengan cluster, tim memakai kubectl, alat command line yang berkomunikasi dengan control plane lewat Kubernetes API ([sumber](https://kubernetes.io/docs/reference/kubectl/)).

## Istilah Penting di Kubernetes

- **Pod:** unit terkecil yang bisa dibuat dan dikelola di Kubernetes. Pod berisi satu atau lebih kontainer yang berbagi storage dan jaringan ([sumber](https://kubernetes.io/docs/concepts/workloads/pods/)).
- **Deployment:** menyediakan pembaruan deklaratif untuk Pod. Anda menulis kondisi yang diinginkan, dan Deployment Controller mengubah kondisi aktual ke sana secara bertahap ([sumber](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)).
- **Service:** cara untuk membuka aplikasi yang berjalan di satu atau lebih Pod ke jaringan, sehingga klien bisa mengaksesnya ([sumber](https://kubernetes.io/docs/concepts/services-networking/service/)).
- **ConfigMap:** objek untuk menyimpan data non-rahasia dalam pasangan key-value, sehingga konfigurasi per lingkungan terpisah dari image ([sumber](https://kubernetes.io/docs/concepts/configuration/configmap/)).
- **Secret:** objek untuk menyimpan data sensitif seperti password dan token ([sumber](https://kubernetes.io/docs/concepts/configuration/secret/)).
- **HorizontalPodAutoscaler:** objek yang otomatis memperbarui workload seperti Deployment untuk menambah jumlah Pod saat beban naik ([sumber](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)).

## Cara Kerja Kubernetes

Prinsip dasarnya adalah kondisi yang diinginkan (desired state). Anda tidak memberi perintah "jalankan kontainer di server A", tetapi menulis "saya ingin tiga salinan aplikasi ini berjalan". Kubernetes yang mengurus sisanya. Alurnya kira-kira seperti ini:

1. Tim menulis file konfigurasi (YAML) berisi kondisi yang diinginkan, misalnya Deployment dengan tiga replika.
2. File itu dikirim ke kube-apiserver, biasanya lewat kubectl atau pipeline CI/CD.
3. Kondisi tersebut disimpan di etcd.
4. kube-scheduler melihat ada Pod yang belum punya node, lalu menempatkannya di node yang sesuai.
5. kubelet di node tersebut menyuruh container runtime menjalankan kontainernya.
6. Controller terus membandingkan kondisi aktual dengan kondisi yang diinginkan. Jika satu Pod mati, Pod baru dibuat agar jumlahnya kembali tiga.
7. Service membuka aplikasi ke jaringan dan membagi trafik ke Pod yang sehat.

Langkah 3 sampai 6 diringkas dari peran tiap komponen di dokumentasi resmi ([sumber](https://kubernetes.io/docs/concepts/overview/components/)).

## Contoh Konfigurasi Deployment

Contoh berikut diambil dari dokumentasi Kubernetes. Deployment ini membuat tiga Pod nginx ([sumber](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)):

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
```

File ini diterapkan dengan perintah seperti `kubectl apply -f nginx-deployment.yaml`. Jika salah satu Pod berhenti, Kubernetes otomatis membuat penggantinya agar tetap ada tiga.

## Kubernetes vs Docker vs Docker Compose

Ketiganya saling melengkapi. Docker membangun image dan menjalankan kontainer di satu host, Docker Compose mendefinisikan dan menjalankan aplikasi multi-kontainer dari satu file ([sumber](https://docs.docker.com/compose/)), sedangkan Kubernetes mengelola beban kerja berbasis kontainer di sebuah cluster yang terdiri dari control plane dan satu atau lebih worker node ([sumber](https://kubernetes.io/docs/concepts/overview/components/)). Penjelasan lengkap soal Docker dan Compose ada di artikel [Docker adalah](/blog/docker-adalah).

| Aspek | Docker Compose | Kubernetes |
|---|---|---|
| Skala | Satu host | Banyak node dalam satu cluster |
| Pemulihan otomatis | Terbatas | Self-healing bawaan ([sumber](https://kubernetes.io/docs/concepts/overview/)) |
| Scaling otomatis | Tidak ada bawaan | HorizontalPodAutoscaler ([sumber](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)) |
| Kompleksitas operasional | Rendah | Tinggi |
| Cocok untuk | Aplikasi kecil, staging, lingkungan lokal | Banyak layanan, trafik naik-turun, kebutuhan high availability |

Baris "kompleksitas" dan "cocok untuk" adalah panduan internal CDS, bukan aturan resmi.

## Hal yang Perlu Diperhatikan Sebelum Memakai Kubernetes

- **Secret tidak otomatis terenkripsi.** Dokumentasi Kubernetes memperingatkan bahwa secara default Secret disimpan tanpa enkripsi di etcd. Siapa pun yang punya akses API atau akses etcd bisa membaca atau mengubahnya, dan siapa pun yang boleh membuat Pod di sebuah namespace bisa membaca Secret di namespace itu ([sumber](https://kubernetes.io/docs/concepts/configuration/secret/)). Aktifkan enkripsi at rest dan batasi aksesnya.
- **ConfigMap bukan tempat data rahasia.** ConfigMap tidak menyediakan kerahasiaan atau enkripsi ([sumber](https://kubernetes.io/docs/concepts/configuration/configmap/)).
- **Hak akses seminimal mungkin.** Kubernetes menyarankan hak RBAC yang minimal untuk pengguna dan service account, memberi izin di level namespace jika memungkinkan, dan menghindari izin wildcard ([sumber](https://kubernetes.io/docs/concepts/security/rbac-good-practices/)).
- **Versi harus rutin diperbarui.** Proyek Kubernetes memelihara cabang rilis untuk tiga versi minor terbaru, dan versi 1.19 ke atas mendapat dukungan patch sekitar satu tahun ([sumber](https://kubernetes.io/releases/)). Cluster yang dibiarkan bertahun-tahun akan keluar dari masa dukungan.
- **Biaya tim, bukan hanya server.** Mengoperasikan cluster butuh keahlian khusus. Untuk aplikasi kecil, satu atau dua server dengan Docker Compose sering lebih masuk akal. Ini panduan internal CDS.

## Kapan Bisnis Perlu Kubernetes?

Panduan internal CDS untuk menilai kebutuhan Kubernetes:

1. Aplikasi sudah dikemas sebagai kontainer, dan deployment-nya sudah rapi di satu server.
2. Jumlah layanan bertambah, misalnya sudah memakai arsitektur [microservices](/blog/microservices-adalah) dengan beberapa layanan yang dirilis terpisah.
3. Trafik naik-turun cukup tajam sehingga kapasitas perlu ditambah dan dikurangi otomatis.
4. Downtime saat rilis atau saat satu server mati sudah merugikan bisnis.
5. Tim sudah menjalankan praktik [DevOps](/blog/devops-adalah) dasar: pipeline CI/CD, pemantauan, dan log terpusat.

Jika baru poin 1 yang terpenuhi, Kubernetes biasanya belum perlu. Jika poin 2 sampai 4 terpenuhi, layanan Kubernetes terkelola dari penyedia cloud bisa mengurangi beban mengelola control plane sendiri.

## FAQ Seputar Kubernetes

### Kubernetes adalah apa dalam bahasa sederhana?

Kubernetes adalah sistem yang mengatur banyak kontainer aplikasi di banyak server secara otomatis: menjalankan, memulihkan, membagi beban, dan menambah kapasitasnya ([sumber](https://kubernetes.io/docs/concepts/overview/)).

### Apa arti K8s?

K8s adalah singkatan Kubernetes. Angka 8 berasal dari delapan huruf di antara "K" dan "s" ([sumber](https://kubernetes.io/docs/concepts/overview/)).

### Apakah Kubernetes pengganti Docker?

Bukan. Docker membangun image dan menjalankan kontainer, sedangkan Kubernetes mengelola kontainer di banyak mesin. Kubernetes memakai container runtime di setiap node untuk menjalankan kontainer ([sumber](https://kubernetes.io/docs/concepts/overview/components/)).

### Apa itu Pod di Kubernetes?

Pod adalah unit terkecil yang bisa dibuat dan dikelola di Kubernetes, berisi satu atau lebih kontainer yang berbagi storage dan jaringan ([sumber](https://kubernetes.io/docs/concepts/workloads/pods/)).

### Apakah Kubernetes gratis?

Kubernetes adalah proyek open source ([sumber](https://kubernetes.io/docs/concepts/overview/)). Biaya muncul dari server atau layanan cloud yang menjalankannya, serta dari tim yang mengoperasikannya.

### Siapa yang membuat Kubernetes?

Google menjadikan Kubernetes open source pada 2014 ([sumber](https://kubernetes.io/docs/concepts/overview/)), dan sekarang proyek ini berstatus Graduated di CNCF ([sumber](https://www.cncf.io/projects/kubernetes/)).

## Butuh Bantuan Menyiapkan Infrastruktur Aplikasi?

Tim CDS membangun aplikasi web, [backend](/blog/backend-adalah), dan API beserta lingkungan staging, produksi, dan pipeline rilisnya lewat [jasa pembuatan software custom](/services/software). Jika Anda sedang menimbang perlu tidaknya Kubernetes untuk sistem yang sudah berjalan, mulai dari [konsultasi IT](/services/consulting). Anda juga bisa menelusuri [karya CDS](/works) untuk melihat proyek yang sudah kami kerjakan.


---

*Markdown version of https://www.ciptadusa.com/blog/kubernetes-adalah — generated for AI agents and LLM crawlers.*
