Lewati ke konten utama

Apa itu Kubernetes? Pengantar dengan Contoh

Pelajari semua tentang Kubernetes dan bagaimana alat ini dapat membantu alur kerja rekayasa data Anda.
Diperbarui 16 Apr 2026  · 9 mnt baca

Jika Anda mengikuti perkembangan komputasi awan, Anda pasti pernah mendengar tentang Kubernetes. Dalam pengembangan aplikasi modern, ini adalah alat kunci untuk mempelajari cara mengelola berbagai setelan infrastruktur.

Dalam artikel pengantar ini, kami akan memberikan gambaran umum tentang Kubernetes dan komponennya, serta tutorial komprehensif untuk mengimplementasikannya secara lokal. Jika Anda mencari pengalaman belajar langsung untuk melengkapi tutorial ini, lihat kursus Introduction to Kubernetes kami. 

Apa itu Kubernetes?

Kubernetes adalah platform orkestrasi kontainer open-source yang mengotomatiskan penyebaran, penskalaan, dan pengelolaan aplikasi terkontainerisasi. Awalnya dikembangkan oleh Google, Kubernetes telah menjadi standar de facto untuk menjalankan kontainer dalam skala besar.

Kubernetes menyederhanakan kompleksitas pengelolaan kontainer individual dan memungkinkan pengembang berfokus pada pembuatan dan penyebaran aplikasi mereka.

Mengapa Menggunakan Kubernetes?

Berikut beberapa manfaat utama menggunakan Kubernetes:

  • Orkestrasi kontainer: Mengotomatiskan distribusi dan penjadwalan kontainer di seluruh klaster.
  • Skalabilitas dan pemulihan mandiri: Menyederhanakan skala horizontal (mereplikasi kontainer) dan skala vertikal (menyesuaikan alokasi sumber daya) dengan kemampuan pemulihan mandiri.
  • Ketersediaan tinggi: Memastikan kontainer (dan karenanya layanan Anda) tetap beroperasi meskipun beberapa node gagal.
  • Portabilitas: Mengabstraksi infrastruktur yang mendasarinya, sehingga mudah dijalankan di lingkungan on-premise maupun di berbagai penyedia cloud.
  • Pemanfaatan sumber daya yang efisien: Mengubah ukuran kontainer berdasarkan penggunaan sumber daya, mengoptimalkan alokasi dan menurunkan biaya.

Kubernetes bermanfaat dalam berbagai aplikasi seperti:

  • DevOps: Mengotomatiskan penyebaran, penskalaan, dan pengelolaan aplikasi terkontainerisasi.
  • Mikrolayanan: Memecah aplikasi monolitik besar menjadi layanan yang lebih kecil dan mudah dikelola untuk meningkatkan kelincahan dan skalabilitas.
  • Big data: Menyederhanakan penyebaran dan pengelolaan sistem big data yang kompleks menggunakan kontainer.
  • Komputasi tepi: Memungkinkan menjalankan Kubernetes pada perangkat edge untuk memproses dan menganalisis data lebih dekat ke sumbernya, mengurangi latensi dan meningkatkan kinerja.
  • Pengiriman berkelanjutan: Terintegrasi dengan alat seperti Jenkins dan GitLab untuk pipeline pengiriman berkelanjutan otomatis.
  • Pembelajaran mesin: Menyediakan platform yang dapat diskalakan untuk melatih dan menyebarkan model machine learning, menangani dataset besar dan komputasi kompleks.

Konsep Utama di Kubernetes

Untuk memahami cara kerja Kubernetes, Anda perlu memahami konsep-konsep kuncinya dengan baik. 

Ini mencakup 4 konsep utama:

  1. Klaster
  2. Pod
  3. Namespace
  4. Operator

Kita akan membahas lebih lanjut di bawah ini.

Klaster

Klaster Kubernetes adalah kumpulan node, yaitu mesin individual yang menjalankan perangkat lunak Kubernetes. Klaster bertindak sebagai control plane untuk mengelola aplikasi dan layanan.

Dalam setelan umum, sebuah klaster memiliki satu master node dan beberapa worker node. Master node bertanggung jawab mengoordinasikan semua aktivitas di dalam klaster, sedangkan worker node menangani menjalankan dan mengelola kontainer.

Pod

Pod adalah unit penyebaran terkecil di Kubernetes. Pod dapat berisi satu atau lebih kontainer, beserta sumber daya penyimpanan bersama dan pengaturan jaringan.

Setiap pod memiliki alamat IP unik dan dapat berkomunikasi dengan pod lain dalam klaster yang sama melalui alamat ini. Hal ini memungkinkan komunikasi yang efisien antar komponen aplikasi.

Pod dapat berupa pod kontainer tunggal atau multi-kontainer dan masing-masing memiliki kegunaan tersendiri.

  • Pod kontainer tunggal: Jenis pod yang paling umum, di mana hanya satu kontainer yang berjalan di dalamnya. Cocok untuk aplikasi sederhana atau mikrolayanan yang hanya memerlukan satu kontainer.
  • Pod multi-kontainer: Beberapa kontainer ditempatkan bersama dan berjalan beriringan. Ini bermanfaat untuk aplikasi kompleks di mana berbagai kontainer perlu saling berkomunikasi dan berbagi sumber daya.

Namespace

Namespace menyediakan cara untuk membagi sumber daya secara logis dalam satu klaster. Ini memungkinkan pengorganisasian dan pengelolaan sumber daya yang lebih baik, serta kontrol keamanan yang lebih ketat.

Namespace juga dapat digunakan untuk mengelola lingkungan yang berbeda, seperti pengembangan, staging, dan produksi. Ini memastikan sumber daya terisolasi dan tidak terpengaruh oleh perubahan di lingkungan lain.

Untuk melihat namespace di klaster Anda, gunakan perintah berikut:

kubectl get namespaces

Untuk berpindah antar-namespace, gunakan perintah berikut

kubectl config set-context --current --namespace <namespace name>

Operator

Operator adalah ekstensi perangkat lunak yang membantu mengotomatiskan pengelolaan sumber daya Kubernetes. Operator menggunakan pengontrol kustom dan ekstensi API untuk mengelola tugas-tugas kompleks secara lebih efisien dan otomatis.

Beberapa operator populer antara lain:

  • Prometheus untuk pemantauan
  • Operator etcd untuk mengelola klaster etcd

Menggunakan operator dapat sangat menyederhanakan pengelolaan aplikasi dan sumber daya dalam klaster Anda. Dengan kemampuan mengotomatiskan tugas dan menyediakan fitur lanjutan, operator semakin populer di kalangan pengguna Kubernetes.

Komponen Inti Kubernetes

Di sebagian besar lingkungan Kubernetes terdapat satu set komponen inti.

komponen inti kubernetes

Sumber: Kubernetes

Berikut daftar komponen dan fungsinya:

  1. API Server: Komponen ini bertindak sebagai titik pengelolaan pusat untuk semua sumber daya Kubernetes. API Server menerima permintaan dari pengguna dan komponen lain lalu menerapkan kebijakan untuk mengelola klaster.
  2. Controller manager: Bertanggung jawab mempertahankan state klaster yang diinginkan dengan terus memantau dan merekonsiliasi perubahan pada objek di dalam klaster.
  3. etcd: Penyimpanan key-value terdistribusi yang menjadi datastore utama Kubernetes. Menyimpan seluruh data klaster dan memastikan konsistensi serta ketersediaan data.
  4. kubelet: Agen yang berjalan pada setiap node di klaster dan bertanggung jawab mengelola kontainer, memastikan kontainer berjalan sesuai konfigurasi yang ditentukan.
  5. Kube Proxy: Komponen yang berjalan pada setiap node dan bertanggung jawab merutekan lalu lintas jaringan ke kontainer yang tepat.

Cara Kerja Kubernetes

Seperti telah dibahas, Kubernetes mengotomatiskan penyebaran, penskalaan, dan pengelolaan aplikasi terkontainerisasi di seluruh klaster. Kubernetes memastikan ketersediaan tinggi, pemanfaatan sumber daya yang efisien, dan pemulihan mandiri tanpa intervensi manual.

Alih-alih mengelola kontainer satu per satu, Kubernetes mengelompokkannya ke dalam Pod dan mendistribusikannya ke worker node, yang berkomunikasi dengan control plane untuk mempertahankan state sistem yang diinginkan.

Berikut ringkasan cara kerja Kubernetes:

  1. Mendefinisikan penyebaran aplikasi: Anda menentukan state yang diinginkan dalam berkas YAML, termasuk replika, batas sumber daya, dan aturan jaringan.
  2. Menjadwalkan beban kerja: Scheduler menetapkan Pod ke worker node berdasarkan ketersediaan sumber daya.
  3. Mengelola state klaster: Controller Manager memastikan sistem mempertahankan jumlah Pod yang benar, mengganti yang gagal.
  4. Menangani jaringan: Kubernetes mengelola komunikasi antar layanan dan akses eksternal melalui Service dan Ingress controller.
  5. Skala dan pemulihan mandiri: Kubernetes menyesuaikan jumlah Pod yang berjalan berdasarkan permintaan dan otomatis memulai ulang kontainer yang gagal.

Dengan menangani kompleksitas infrastruktur, Kubernetes memungkinkan tim berfokus membangun aplikasi alih-alih mengelola penyebaran, sehingga menjadi esensial untuk beban kerja yang skalabel dan tangguh di berbagai industri.

Istilah dan Konsep Umum

Mari lihat beberapa istilah kunci yang perlu Anda ketahui beserta definisinya:

  • Manifest YAML: Berkas konfigurasi yang mendefinisikan state aplikasi atau infrastruktur yang diinginkan. Dapat digunakan untuk membuat, memperbarui, dan menghapus sumber daya di Kubernetes.
  • StatefulSet vs. Deployment: Dua jenis controller di Kubernetes yang mengelola siklus hidup pod. Deployment biasanya digunakan untuk aplikasi stateless, sedangkan StatefulSet untuk aplikasi stateful.
  • Service: Memberikan alamat IP dan nama DNS yang stabil untuk mengakses aplikasi Anda di dalam klaster. Juga memungkinkan komunikasi antar pod.
  • ConfigMap: Digunakan untuk menyimpan data konfigurasi dalam pasangan key-value yang dapat diakses oleh aplikasi Anda.
  • Secret: Mirip dengan ConfigMap, tetapi digunakan untuk menyimpan informasi sensitif seperti kata sandi atau kunci API.

Mulai Menggunakan Kubernetes

Bekerja dengan Kubernetes bisa terasa menakutkan, terutama saat memahami berbagai istilah dan konsep. Namun, setelah Anda memahami istilah-istilah penting ini dengan baik, menavigasi platform akan menjadi jauh lebih mudah.

Mari mulai dengan melihat beberapa alat yang digunakan bersama Kubernetes.

Alat untuk pemula

Sebagai pemula Kubernetes, keharusan menyebarkan aplikasi di cloud bisa terasa berat. Karena itu, Anda dapat menggunakan beberapa alat umum untuk menyebarkannya secara lokal. 

Berikut 2 alat yang paling umum digunakan:

1. Minikube

Minikube adalah implementasi Kubernetes yang ringan dan dapat dijalankan pada satu mesin host. Biasanya menjalankan klaster node tunggal dalam mesin virtual (VM) di laptop atau workstation Anda.

Alasan menggunakannya:

  • Mudah dipasang dan dibongkar.
  • Sangat cocok untuk pengembangan lokal dan proof-of-concept.
  • Penggunaan sumber daya minimal dibandingkan klaster penuh.

Cara memasang Minikube (contoh di Windows):

# Install via Windows Package Manager
winget install Kubernetes.minikube

Anda akan melihat pesan pemasangan berikut. Setujui syarat dan ketentuan jika diminta dengan menekan “Y”.

memasang kubernetes

Selanjutnya, untuk menjalankan klaster sederhana di minikube, gunakan perintah start berikut:

# Start a single-node cluster
minikube start

Untuk memeriksa apakah node klaster telah berhasil dimulai, jalankan perintah get:

# Verify the cluster is running
kubectl get nodes

Catatan: Anda perlu memasang server API kubectl di mesin lokal Anda (sering kali dipasang otomatis bersama Minikube).

2. Kind (Kubernetes in Docker)

Kind singkatan dari Kubernetes in Docker. Kind menggunakan kontainer Docker sebagai "node" dalam klaster Kubernetes, menyediakan lingkungan klaster lokal berbasis kontainer yang sederhana.

Alasan menggunakannya:

  • Waktu mulai lebih cepat dibandingkan Minikube dalam banyak skenario.
  • Mudah menjalankan beberapa klaster uji sekaligus, ideal untuk pipeline CI/CD.
  • Sering digunakan di lingkungan pengujian otomatis karena overhead yang lebih rendah.

Cara memasang Kind (contoh di Windows):

# Install Kind with Windows Package Manager
winget install Kubernetes.kind

Setelah terpasang, Anda dapat membuat klaster sederhana menggunakan perintah create cluster dan berikan namanya.

# Create a basic cluster
kind create cluster --name example-cluster

Untuk memeriksa apakah klaster kind Kubernetes Anda telah berjalan, gunakan perintah get berikut.

# Check running clusters
kind get clusters

Anda juga dapat berinteraksi dengan klaster melalui antarmuka kubectl:

# Interact with your Kind cluster using kubectl
kubectl get nodes

Catatan: Pastikan Docker telah terpasang dan berjalan.

Penyedia Cloud (EKS, GKE, AKS)

Saat menjalankan Kubernetes di cloud, berikut beberapa penyedia cloud yang dapat dipilih:

1. Amazon EKS (Elastic Kubernetes Service)

Amazon EKS adalah layanan terkelola yang memudahkan menjalankan Kubernetes di AWS tanpa perlu mengelola control plane atau worker node sendiri. EKS terintegrasi dengan layanan AWS lain untuk fitur tambahan seperti load balancing, penyimpanan, penskalaan otomatis, dan pemantauan.

Beberapa fitur tambahan meliputi:

  • Integrasi dengan layanan AWS lain (mis., IAM, CloudWatch, ECR).
  • Skalabilitas dan ketersediaan tinggi sudah tersemat pada platform.

2. Google GKE (Google Kubernetes Engine)

Google GKE adalah layanan terkelola penuh untuk menjalankan Kubernetes di Google Cloud Platform. Menawarkan penskalaan otomatis, kemampuan pemulihan mandiri, dan integrasi dengan layanan Google Cloud lainnya.

Beberapa fitur tambahan meliputi:

  • Integrasi mendalam dengan layanan GCP seperti Cloud Logging, Cloud Monitoring, dan Container Registry.
  • Menawarkan mode autopilot, yang secara otomatis mengelola infrastruktur klaster.

3. Azure AKS (Azure Kubernetes Service)

Azure AKS menyediakan klaster Kubernetes tanpa server yang sepenuhnya terintegrasi dengan layanan Azure lain seperti Storage, Networking, dan Load Balancing. AKS juga memiliki dukungan bawaan untuk alat DevOps seperti Helm dan Prometheus.

Beberapa fitur tambahan meliputi:

  • Terintegrasi dengan Azure Active Directory, Azure Monitor, Container Registry, dll.
  • Menawarkan Kubernetes tanpa server (Virtual Nodes) menggunakan Azure Container Instances.

Sumber belajar Kubernetes

Mempelajari Kubernetes untuk pertama kali bisa terasa berat, tetapi ada banyak sumber yang tersedia untuk membantu Anda memulai. 

Berikut beberapa sumber yang direkomendasikan:

Contoh Deployment Kubernetes

Untuk menjalankan aplikasi di Kubernetes, Anda mengikuti alur kerja terstruktur yang mencakup menyiapkan klaster, menyebarkan aplikasi terkontainerisasi, mengeksposnya sebagai layanan, dan melakukan penskalaan sesuai kebutuhan. 

Kami telah membahas proses ini secara rinci di tutorial Kubernetes kami, tetapi berikut ringkasan tingkat tingginya:

Siapkan klaster Kubernetes

Gunakan Minikube untuk membuat klaster lokal guna pengujian dan pengembangan. Pasang Minikube dan mulai klaster Anda dengan:

minikube start --driver=docker
Verifikasi bahwa klaster Anda sedang berjalan:
kubectl get nodes

Sebarkan aplikasi

Definisikan state aplikasi yang diinginkan dalam berkas YAML Deployment. Sebagai contoh, menyebarkan server web Nginx terlihat seperti ini:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      containers:
      - name: hello-container
        image: nginx:latest
        ports:
        - containerPort: 80

Terapkan deployment dengan:

kubectl apply -f hello-deployment.yaml

Ekspos aplikasi sebagai layanan

Agar aplikasi dapat diakses, buat Service menggunakan:

kubectl expose deployment hello-deployment --type=NodePort --port=80 --name=hello-service

Ambil URL eksternal dan buka aplikasi di peramban Anda:

minikube service hello-service

Skalakan dan pantau aplikasi

Kubernetes memungkinkan Anda menskalakan aplikasi dengan mudah. Untuk menambah replika:

kubectl scale deployment hello-deployment --replicas=3

Periksa Pod yang berjalan:

kubectl get pods

Lihat log untuk debug:

kubectl logs -f <pod-name>

Berikut beberapa contoh untuk eksplorasi lebih lanjut pada proyek lanjutan:

  • Jalankan pekerjaan streaming dalam kontainer (mis., Spark di Kubernetes, Kafka di Kubernetes).
  • Gunakan Persistent Volume untuk me-mount solusi penyimpanan eksternal seperti AWS EBS, Azure Disk, atau NFS.
  • Sebarkan aplikasi yang lebih kompleks (mis., mikrolayanan multi-tier dengan basis data).
  • Jelajahi fitur lanjutan seperti Ingress controller, Service Mesh (mis., Istio), chart Helm untuk manajemen paket.

Penutup

Kubernetes adalah platform yang kuat untuk menyebarkan dan mengelola aplikasi terkontainerisasi dalam skala besar, menjadikannya alat esensial bagi data engineer yang memerlukan lingkungan elastis dan andal untuk pemrosesan data. 

Jika Anda tertarik mempelajari lebih lanjut tentang Kubernetes, kursus Introduction to Kubernetes kami adalah tempat yang tepat untuk memulai.

FAQ Kubernetes

Apakah Kubernetes sama dengan Docker?

Tidak, Kubernetes adalah alat orkestrasi kontainer sedangkan Docker adalah platform kontainerisasi. Keduanya bekerja sama untuk mengelola dan menyebarkan kontainer, tetapi memiliki tujuan yang berbeda.

Apa manfaat menggunakan Kubernetes?

Kubernetes memudahkan pengelolaan dan penyebaran kontainer, meningkatkan skalabilitas dan ketersediaan aplikasi, serta mendukung pembaruan dan rollback otomatis.

Apakah Kubernetes bisa digunakan di semua jenis lingkungan?

Ya, Kubernetes dapat digunakan di lingkungan on-premise maupun cloud. Kubernetes sangat fleksibel dan dapat beradaptasi dengan berbagai setelan infrastruktur.

Apakah sulit mempelajari cara menggunakan Kubernetes?

Meskipun ada kurva pembelajaran, tersedia banyak sumber daya daring seperti DataCamp dan panduan pemula dari Kubernetes sendiri.

Apa arsitektur Kubernetes?

Kubernetes mengikuti arsitektur klien-server, dengan master node mengendalikan klaster dan worker node menjalankan beban kerja aplikasi. Ini memungkinkan komunikasi dan pengelolaan seluruh sistem yang efisien.


Austin Chia's photo
Author
Austin Chia
LinkedIn

Saya Austin, seorang blogger dan penulis teknologi dengan pengalaman bertahun-tahun sebagai data scientist dan analis data di bidang kesehatan. Memulai perjalanan teknologi dengan latar belakang biologi, kini saya membantu orang lain melakukan transisi yang sama melalui blog teknologi saya. Ketertarikan saya pada teknologi mendorong kontribusi tulisan saya untuk puluhan perusahaan SaaS, menginspirasi orang lain dan membagikan pengalaman saya.

Topik

Kursus Teratas DataCamp

Program

Data Engineer dalam Python

40 Hr
Dapatkan keterampilan yang sangat dicari untuk mengelola data dengan efisien, termasuk mengimpor, membersihkan, mengelola data, serta menjadwalkan dan memantau pipeline, sehingga Anda dapat menonjol di bidang data engineering.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

12 mnt

Lihat Lebih BanyakLihat Lebih Banyak