Topik ini menyiapkan kluster belajar yang berjalan di komputer sendiri, lengkap dengan kubectl sebagai alat kendalinya. Jalur utamanya menggunakan minikube, sedangkan kind disediakan sebagai alternatif yang ringan untuk lingkungan yang sudah memasang Docker. Di akhir topik, kluster lab satu Node sudah berjalan, perintah dasar kubectl sudah dicoba, dan dasbor grafis (dashboard) sudah dapat dibuka.
Pilihan alat lab#
Dua alat yang paling umum digunakan untuk membuat kluster belajar di komputer sendiri adalah minikube dan kind. minikube menjalankan kluster Kubernetes satu Node di dalam mesin virtual maupun container, lengkap dengan banyak fitur tambahan berupa add-on yang dapat diaktifkan kapan pun. kind menumpangkan setiap Node kluster sebagai container Docker, dengan tujuan utama pengujian dan lingkungan CI. Keduanya menghadirkan kluster Kubernetes yang sah, sehingga kubectl berperilaku identik terhadap keduanya.
| Aspek | minikube | kind |
|---|---|---|
| Bentuk | aplikasi mandiri dengan beragam driver | alat berbasis Docker |
| Node kluster | satu mesin virtual atau container | setiap Node berupa container Docker |
| Fitur pendukung | add-on seperti dashboard dan ingress | kluster inti untuk pengujian |
| Kegunaan umum | lab belajar interaktif di laptop | pengujian otomatis dan pipeline CI |
Pada jalur ini, minikube dipilih sebagai alat utama karena pemasangannya langsung dan fitur bawaannya mendekati pengalaman kluster nyata, termasuk dasbor. kind tetap dicantumkan sebagai alternatif untuk mesin yang sudah memasang Docker atau untuk kebutuhan otomatisasi. Pilihan alat tidak mengubah cara berlatih, karena seluruh perintah kubectl yang digunakan di jalur ini berlaku umum terhadap kluster mana pun.
Menginstal kubectl dan minikube#
kubectl adalah alat command line untuk berbicara dengan API server, dan hampir semua latihan di jalur ini dilakukan melaluinya. Instalasi cukup dilakukan sekali, dan versi kubectl sebaiknya berjarak maksimal satu versi minor dari versi kluster sesuai kebijakan dukungan resmi. Perintah berikut mengunduh biner kubectl versi stabil untuk Linux amd64, memasangnya, lalu menampilkan versi yang terpasang.
# tidak-dijalankan
# mengunduh biner kubectl versi stabil untuk Linux amd64
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# memasang kubectl ke direktori sistem
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# menampilkan versi kubectl yang terpasang
kubectl version --clientClient Version: v1.31.0
Kustomize Version: v5.4.2minikube dipasang dengan pola yang serupa, yaitu mengunduh satu biner lalu menaruhnya pada direktori yang terdaftar di PATH. Apabila distribusi Linux atau arsitektur prosesor berbeda, nama berkas pada tautan unduhan disesuaikan mengikuti petunjuk dokumentasi resminya. Kedua biner bersifat mandiri dan tidak membutuhkan dependensi lain, sehingga pemasangan cukup dilakukan dengan menyalin berkasnya ke satu direktori. Apabila direktori sistem tidak dapat ditulis, lokasi pribadi seperti $HOME/.local/bin juga dapat digunakan selama direktori itu terdaftar pada PATH.
# tidak-dijalankan
# mengunduh biner minikube terbaru untuk Linux amd64
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# memasang minikube ke direktori sistem
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# menampilkan versi minikube yang terpasang
minikube version --shortv1.34.0Membuat kluster pertama#
Perintah minikube start membuat kluster pertama dan menetapkan profil bernama minikube sebagai kluster aktif. Prosesnya mencakup pemilihan driver, pengunduhan image kluster, pembuatan Node, penyiapan komponen pengelola, dan pengaktifan add-on bawaan. Setelah selesai, minikube menuliskan koneksi ke berkas kubeconfig, sehingga kubectl yang baru terpasang langsung menunjuk ke kluster tersebut tanpa pengaturan tambahan. Keluaran persisnya bergantung pada versi alat, dan contoh pada topik ini diambil dari minikube v1.34.0 dengan Kubernetes v1.31.0.
# tidak-dijalankan
# membuat dan menyalakan kluster lab satu node
minikube start* minikube v1.34.0 on Ubuntu 22.04
* Using the docker driver based on existing configuration
* Starting "minikube" primary control-plane cluster in "minikube" docker container
* Downloading Kubernetes v1.31.0 ...
- Preparing Kubernetes v1.31.0 on Docker 27.0.3 ...
- Verifying Kubernetes components...
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by defaultSetiap baris keluaran di atas merekam satu tahap pemasangan, mulai dari pemilihan driver Docker sampai pengaktifan add-on penyimpanan. Pesan Done pada baris terakhir menandakan API server sudah dapat dihubungi. Untuk memastikannya, perintah kubectl get nodes menampilkan daftar Node beserta status, peran, dan versi Kubernetes yang berjalan.
# tidak-dijalankan
# menampilkan daftar node pada kluster
kubectl get nodesNAME STATUS ROLES AGE VERSION
minikube Ready control-plane 45s v1.31.0Satu Node dengan peran control-plane pada keluaran tersebut sesuai dengan bentuk lab satu Node, yaitu komponen pengelola dan beban kerja berbagi mesin yang sama. STATUS Ready berarti kubelet pada Node itu melaporkan kondisinya sehat ke API server. Perintah kubectl cluster-info memberikan ringkasan alamat koneksi dan berguna untuk memastikan kubectl terhubung ke kluster yang dimaksud.
# tidak-dijalankan
# menampilkan alamat API server dan komponen inti
kubectl cluster-infoKubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.Dasbor dan perintah penunjang#
minikube menyertakan add-on dashboard, yaitu antarmuka web yang menampilkan objek kluster secara grafis, mulai dari daftar Pod sampai log container. Perintah minikube dashboard mengaktifkan add-on tersebut, menjalankan proksi lokal, lalu membuka dasbor pada peramban bawaan. Alamat yang dicetak pada keluaran tetap berlaku selama proses berjalan, sehingga tab yang sama dapat dimuat ulang tanpa menjalankan ulang perintah. Isi dasbor mencerminkan objek yang sama dengan yang ditanyakan kubectl, sehingga pemeriksaan sederhana dapat dilakukan tanpa mengetik perintah, sedangkan kubectl tetap lebih cepat untuk tugas yang berulang.
# tidak-dijalankan
# mengaktifkan add-on dashboard dan membukanya di peramban
minikube dashboard* Enabling dashboard ...
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
* Opening http://127.0.0.1:37447/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...Proses minikube dashboard tetap berjalan dan menempati terminal sampai dihentikan dengan Ctrl+C. Menghentikannya hanya menutup proksi lokal, sedangkan kluster dan add-on dashboard tetap terpasang, sehingga perintah yang sama dapat dijalankan kembali kapan pun. Apabila peramban tidak terbuka otomatis, alamat pada baris terakhir keluaran dapat disalin secara manual. Untuk latihan tanpa antarmuka grafis, seluruh materi jalur ini tetap dapat diikuti hanya dengan kubectl.
Alternatif: kind#
kind menjadi pilihan apabila lingkungan kerja sudah berbasis Docker atau kluster perlu dibuat dan dihapus berkali-kali secara otomatis. Instalasinya mengikuti pola yang sama, yaitu mengunduh satu biner lalu menaruhnya pada PATH. Contoh di sini menggunakan versi v0.24.0, dan nomor versi terbarunya selalu dapat dilihat pada halaman Quick Start resminya. Berbeda dengan minikube, kind tidak menyediakan dasbor bawaan dan tidak menawarkan driver selain Docker, tetapi pembuatan klusternya cepat karena seluruh Node berupa container.
# tidak-dijalankan
# mengunduh biner kind untuk Linux amd64
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64
# membuat berkas dapat dieksekusi
chmod +x ./kind
# memindahkan kind ke direktori yang terdaftar di PATH
sudo mv ./kind /usr/local/bin/kindPerintah kind create cluster membuat kluster dengan nama default kind dan mengubah konteks kubectl ke kluster tersebut secara otomatis. Pengubahan konteks inilah yang membuat kubectl get nodes segera dapat dijalankan tanpa pengaturan tambahan. Apabila lebih dari satu kluster dibutuhkan, nama lain dapat dipilih melalui argumen –name pada perintah yang sama.
# tidak-dijalankan
# membuat kluster kind dengan nama default
kind create clusterCreating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.31.0) 📦
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"# tidak-dijalankan
# menampilkan node pada kluster kind yang baru dibuat
kubectl get nodesNAME STATUS ROLES AGE VERSION
kind-control-plane Ready control-plane 32s v1.31.0Nama Node yang berbeda, yaitu kind-control-plane, hanyalah penanda lab yang digunakan. Perintah kubectl yang dipelajari di jalur ini tidak terikat pada alat pembuat kluster, sehingga hasilnya identik baik di lab minikube maupun kind. Keduanya memenuhi standar Kubernetes yang sama, sehingga perbedaannya hanya terletak pada cara kluster dibuat dan dijalankan.
Ringkasan#
- minikube dan kind sama-sama menghadirkan kluster Kubernetes sah di komputer lokal, dengan minikube kaya add-on dan kind ringan untuk otomatisasi.
- kubectl adalah alat command line yang berbicara dengan API server, dan versinya sebaiknya berjarak maksimal satu versi minor dari versi kluster.
- minikube start membuat kluster dan menuliskan koneksi ke kubeconfig, sehingga kubectl get nodes segera menampilkan Node dengan status Ready.
- minikube dashboard membuka dasbor grafis yang tetap dapat diakses selama prosesnya berjalan di terminal.
Referensi#
- Instalasi Alat — Kubernetes Documentation — Daftar resmi opsi instalasi kubectl, minikube, dan kind untuk berbagai sistem operasi.
- Mulai Menggunakan minikube — minikube Documentation — Petunjuk resmi instalasi minikube dan pembuatan kluster pertama.
- Quick Start — kind Documentation — Panduan resmi instalasi kind dan pembuatan kluster dengan kind.
- Referensi kubectl — Kubernetes Documentation — Dokumentasi resmi perintah kubectl yang digunakan di jalur ini.