Menginstal K3s dan Kubernetes di Ubuntu 24.04
Pengantar
Dalam beberapa tahun terakhir, teknologi container semakin populer untuk membangun aplikasi modern. Salah satu teknologi yang paling banyak digunakan adalah Kubernetes, yaitu platform yang memungkinkan developer dan administrator server mengelola container secara otomatis, mulai dari deployment, scaling, hingga monitoring aplikasi. Namun, Kubernetes versi standar sering dianggap cukup kompleks bagi pemula karena membutuhkan resource yang lebih besar serta konfigurasi yang cukup banyak. Karena itu, K3s hadir sebagai solusi yang lebih ringan dan mudah digunakan. K3s merupakan distribusi Kubernetes ringan yang dikembangkan oleh Rancher Labs sehingga cocok untuk kebutuhan belajar, development, maupun server dengan spesifikasi terbatas. Sementara itu, Ubuntu 24.04 LTS menjadi pilihan ideal karena stabil, ringan, dan memiliki dukungan jangka panjang (LTS). Kombinasi Ubuntu 24.04 dan K3s membuat proses belajar Kubernetes menjadi lebih sederhana dan mudah dipahami. Pada artikel ini, kita akan membahas cara menginstal K3s dan Kubernetes di Ubuntu 24.04 secara lengkap dan bertahap menggunakan bahasa yang mudah dipahami oleh pemula.
Apa Itu Kubernetes?
Kubernetes adalah platform open-source untuk mengelola container secara otomatis. Kubernetes biasanya digunakan bersama Docker atau container runtime lainnya.
Kubernetes membantu proses deployment aplikasi modern agar lebih scalable, stabil, dan mudah dikelola pada banyak server sekaligus.
Beberapa fungsi utama Kubernetes:
- Menjalankan aplikasi container secara otomatis
- Load balancing traffic aplikasi
- Auto healing container ketika crash
- Scaling aplikasi secara horizontal
- Rolling update tanpa downtime
- Manajemen resource container
- Monitoring dan orchestration aplikasi
Kubernetes banyak digunakan oleh perusahaan besar karena mampu mengelola aplikasi skala besar dengan efisien.
Dengan Kubernetes, proses deployment menjadi lebih modern dibanding menjalankan aplikasi secara manual di satu server.
Keterangan:
Kubernetes sangat populer pada environment cloud, microservices, DevOps, dan infrastructure modern.
Apa Itu K3s ?
K3s merupakan versi ringan Kubernetes yang dirancang agar lebih sederhana, mudah diinstall, dan hemat resource.
K3s dikembangkan oleh Rancher dan sangat cocok digunakan untuk:
- Lab Kubernetes
- Development environment
- Edge computing
- VPS kecil
- Home lab
- Belajar Kubernetes untuk pemula
Keunggulan K3s:
- Instalasi sangat cepat
- Binary Kubernetes lebih kecil
- Penggunaan RAM lebih hemat
- Cocok untuk VPS resource kecil
- Sudah include banyak komponen penting
- Lebih mudah dipelajari pemula
- Maintenance lebih sederhana
Jika Kubernetes standar membutuhkan resource cukup besar, K3s bisa berjalan hanya dengan RAM sekitar 1GB hingga 2GB.
K3s tetap kompatibel dengan ecosystem Kubernetes seperti:
- kubectl
- Helm
- Ingress
- Longhorn
- Prometheus
- Grafana
Keterangan:
K3s sangat cocok digunakan untuk belajar Kubernetes maupun menjalankan aplikasi production skala kecil hingga menengah.
Persiapan Sebelum Instalasi
Sebelum mulai instalasi K3s di Ubuntu 24.04, pastikan server sudah memenuhi kebutuhan berikut.
- Ubuntu 24.04 LTS
- RAM minimal 1 GB
- CPU 1 Core
- Storage minimal 10 GB
- Akses root atau sudo
Install K3s
Sebelum melakukan instalasi K3s, pastikan sistem sudah menggunakan package terbaru dan package pendukung sudah terinstall.
- Update Package Sistem
Jalankan perintah berikut:
sudo apt update && sudo apt upgrade -yFungsi:
- Melakukan update repository package Ubuntu
- Mengupgrade package sistem ke versi terbaru
- Mengurangi potensi error saat instalasi K3s
Keterangan:
Melakukan update sistem sebelum instalasi Kubernetes sangat disarankan agar dependency lebih stabil dan aman. - Install Package Pendukung
Install package berikut:
sudo apt install curl wget nano -yFungsi Package:
- curl
Digunakan untuk download script instalasi K3s. - wget
Digunakan untuk download file tambahan jika diperlukan. - nano
Text editor sederhana untuk edit konfigurasi.
- curl
- Install K3s
Proses instalasi K3s sangat sederhana karena sudah disediakan script otomatis.
Jalankan perintah berikut:
curl -sfL https://get.k3s.io | sh -Fungsi:
- Mendownload installer K3s otomatis
- Menginstall Kubernetes lightweight
- Membuat service K3s secara otomatis
- Menginstall kubectl dan container runtime bawaan
Tunggu beberapa saat hingga proses selesai.
Jika berhasil, biasanya akan muncul service K3s aktif.
Keterangan:
K3s secara default sudah include containerd, flannel, CoreDNS, dan komponen Kubernetes penting lainnya. - Cek Status K3s
Setelah instalasi selesai, cek apakah service K3s berjalan:
sudo systemctl status k3sFungsi:
- Memastikan service Kubernetes berjalan normal
- Melihat status daemon K3s
- Digunakan untuk troubleshooting awal
Jika status menunjukkan:
active (running)berarti K3s berhasil diinstal.
Keterangan:
Jika service aktif, maka node Kubernetes sudah siap digunakan untuk deployment aplikasi container.
Cek Node Kubernetes
Setelah service K3s berhasil berjalan, langkah berikutnya adalah memastikan node Kubernetes berhasil aktif.
- Cek Node Kubernetes
Gunakan perintah berikut:
sudo kubectl get nodesFungsi:
- Menampilkan daftar node Kubernetes
- Memastikan cluster berhasil berjalan
- Melihat status node Kubernetes
Contoh hasil:
NAME STATUS ROLES AGE VERSION master Ready control-plane,master 2m v1.xx.x+k3sPenjelasan Output:
- NAME
Nama node Kubernetes. - STATUS Ready
Menandakan node aktif dan siap digunakan. - ROLES
Menunjukkan fungsi node sebagai control-plane atau master. - AGE
Waktu sejak node dibuat. - VERSION
Versi Kubernetes K3s yang digunakan.
Artinya cluster Kubernetes sudah aktif dan siap digunakan untuk deployment aplikasi container.
Keterangan:
Jika status node menunjukkan Ready, maka Kubernetes sudah berjalan normal dan dapat digunakan untuk membuat pod, deployment, dan service.
Menambahkan Konfigurasi Kubeconfig
Secara default, kubectl pada K3s sering memerlukan akses sudo. Agar kubectl dapat digunakan tanpa sudo, salin konfigurasi Kubernetes ke home user.
- Buat Directory Konfigurasi Kubernetes
Gunakan perintah berikut:
mkdir -p $HOME/.kubeFungsi:
- Membuat folder konfigurasi Kubernetes user
- Digunakan untuk menyimpan file kubeconfig
- Parameter -p otomatis membuat parent directory jika belum ada
- Copy File Konfigurasi K3s
Gunakan perintah berikut:
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/configFungsi:
- Menyalin file konfigurasi cluster Kubernetes
- Menghubungkan kubectl user ke cluster K3s
- Membuat akses kubectl tanpa sudo
- Ubah Permission File Config
Gunakan perintah berikut:
sudo chown $(id -u):$(id -g) $HOME/.kube/configFungsi:
- Mengubah ownership file kubeconfig ke user login saat ini
- Mengizinkan kubectl membaca konfigurasi tanpa sudo
Penjelasan:
- $(id -u)
Mengambil User ID aktif. - $(id -g)
Mengambil Group ID aktif.
Keterangan:
Tanpa perubahan ownership, kubectl dapat mengalami error permission denied. - Testing Kubectl Tanpa Sudo
Kemudian tes kembali menggunakan:
kubectl get nodesJika berhasil biasanya muncul:
NAME STATUS ROLES AGE VERSION master Ready control-plane,master 5m v1.xx.x+k3sFungsi:
- Memastikan kubectl dapat digunakan tanpa sudo
- Memastikan koneksi ke cluster Kubernetes berhasil
Keterangan:
Setelah langkah ini selesai, seluruh command Kubernetes dapat dijalankan menggunakan user biasa tanpa sudo.
Cara Deploy Aplikasi Pertama di Kubernetes
Setelah cluster Kubernetes berhasil berjalan, sekarang kita coba menjalankan container sederhana menggunakan Nginx.
- Deploy Nginx
Jalankan perintah berikut:
kubectl create deployment nginx --image=nginxFungsi:
- Membuat deployment Kubernetes baru
- Menjalankan container Nginx
- Menguji apakah cluster Kubernetes berjalan normal
Penjelasan:
- deployment nginx
Nama deployment yang dibuat. - --image=nginx
Menggunakan image official Nginx dari Docker Hub.
Keterangan:
Deployment digunakan Kubernetes untuk mengelola pod secara otomatis dan menjaga aplikasi tetap berjalan. - Cek Deployment
Gunakan perintah berikut:
kubectl get deploymentFungsi:
- Melihat daftar deployment Kubernetes
- Memastikan deployment berhasil dibuat
- Melihat jumlah replica aplikasi
Contoh hasil:
NAME READY UP-TO-DATE AVAILABLE nginx 1/1 1 1 - Cek Pod
Gunakan perintah berikut:
kubectl get podsFungsi:
- Melihat pod yang berjalan
- Memastikan container berhasil dijalankan
- Digunakan untuk monitoring aplikasi Kubernetes
Contoh hasil:
NAME READY STATUS RESTARTS nginx-xxxxxxxxxx-xxxxx 1/1 Running 0Jika status pod menunjukkan:
Runningberarti aplikasi berhasil berjalan.
Keterangan:
Status Running menandakan container berhasil dibuat dan aktif di dalam cluster Kubernetes.
Membuka Akses Aplikasi
Secara default pod Kubernetes hanya dapat diakses dari dalam cluster. Agar aplikasi dapat diakses melalui browser, kita perlu membuat Service Kubernetes.
- Expose Service
Gunakan perintah berikut:
kubectl expose deployment nginx --type=NodePort --port=80Fungsi:
- Membuat service untuk deployment Nginx
- Membuka akses aplikasi dari luar cluster
- Menghubungkan traffic ke pod Nginx
Penjelasan:
- deployment nginx
Deployment yang akan di-expose. - --type=NodePort
Membuka port pada node Kubernetes. - --port=80
Port service yang digunakan aplikasi.
Keterangan:
NodePort memungkinkan aplikasi diakses menggunakan IP node Kubernetes dan port tertentu. - Cek Service
Gunakan perintah berikut:
kubectl get svcFungsi:
- Melihat daftar service Kubernetes
- Memastikan service berhasil dibuat
- Melihat port akses aplikasi
Contoh hasil:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) nginx NodePort 10.x.x.x 80:30080/TCPPenjelasan Output:
- TYPE NodePort
Service dapat diakses dari luar cluster. - CLUSTER-IP
IP internal service Kubernetes. - 80:30080/TCP
Port internal service dan port external node.
- Akses Aplikasi
Aplikasi dapat diakses melalui browser:
http://IP_SERVER:30080Fungsi:
- Menguji akses aplikasi dari luar cluster
- Memastikan service NodePort berjalan normal
Keterangan:
IP_SERVER dapat menggunakan IP public maupun IP local node Kubernetes yang menjalankan cluster.
Perintah Dasar Kubernetes yang Wajib Diketahui
Berikut beberapa command penting Kubernetes yang sering digunakan oleh pemula untuk monitoring dan management cluster.
- Melihat Semua Pod
kubectl get podsFungsi:
- Menampilkan seluruh pod yang berjalan
- Melihat status container aplikasi
- Digunakan untuk monitoring deployment
Contoh status pod:
Running Pending CrashLoopBackOffKeterangan:
Command ini paling sering digunakan untuk troubleshooting aplikasi Kubernetes. - Melihat Service
kubectl get svcFungsi:
- Menampilkan seluruh service Kubernetes
- Melihat port akses aplikasi
- Mengetahui tipe service seperti ClusterIP atau NodePort
Service digunakan sebagai penghubung antara user dan pod aplikasi.
- Melihat Node
kubectl get nodesFungsi:
- Menampilkan seluruh node Kubernetes
- Melihat status node cluster
- Memastikan node dalam kondisi Ready
Contoh status normal:
STATUS: Ready - Melihat Deployment
kubectl get deploymentFungsi:
- Menampilkan deployment aplikasi
- Melihat jumlah replica pod
- Memastikan deployment berhasil berjalan
Deployment digunakan untuk mengelola aplikasi container secara otomatis.
- Menghapus Deployment
kubectl delete deployment nginxFungsi:
- Menghapus deployment Kubernetes
- Menghentikan seluruh pod aplikasi terkait
- Digunakan untuk cleanup resource
Penjelasan:
- nginx
Nama deployment yang akan dihapus.
Keterangan:
Saat deployment dihapus, pod yang dibuat deployment tersebut juga akan ikut terhapus otomatis.
Cara Uninstall K3s
Jika sudah tidak menggunakan K3s atau ingin melakukan reinstall Kubernetes, K3s menyediakan script uninstall otomatis.
- Uninstall K3s
Gunakan perintah berikut:
/usr/local/bin/k3s-uninstall.shFungsi:
- Menghapus service K3s
- Menghapus binary Kubernetes K3s
- Menghapus container runtime bawaan
- Membersihkan konfigurasi cluster Kubernetes
- Menghapus network dan komponen Kubernetes dari server
Proses yang dibersihkan:
- Service systemd K3s
- Container dan pod Kubernetes
- Directory konfigurasi K3s
- Containerd bawaan K3s
- Network Kubernetes
Keterangan:
Perintah tersebut akan membersihkan seluruh konfigurasi K3s dari Ubuntu sehingga cluster Kubernetes akan hilang sepenuhnya dari server.
Tips dan Catatan Penting
Berikut beberapa best practice yang disarankan saat menggunakan K3s pada VPS agar cluster Kubernetes lebih stabil dan aman.
- Gunakan VPS dengan RAM Minimal 2GB
Walaupun K3s terkenal ringan, penggunaan RAM minimal 2GB tetap lebih nyaman terutama jika menjalankan beberapa container sekaligus.
Alasan:
- Kubernetes membutuhkan resource untuk system pod
- Container aplikasi juga menggunakan memory tambahan
- Monitoring seperti Prometheus dan Grafana cukup memakan RAM
Rekomendasi:
- 1GB RAM → Lab sangat kecil
- 2GB RAM → Belajar dan testing normal
- 4GB+ RAM → Multi aplikasi dan monitoring
Keterangan:
Semakin banyak pod dan service yang berjalan, semakin besar kebutuhan resource VPS. - Jangan Jalankan Terlalu Banyak Pod
K3s memang hemat resource, tetapi VPS kecil tetap memiliki batas kemampuan.
Risiko jika terlalu banyak pod:
- CPU overload
- Memory habis
- Pod restart terus menerus
- Node menjadi NotReady
Best Practice:
- Gunakan resource limit pada deployment
- Hapus pod yang tidak digunakan
- Monitoring penggunaan CPU dan RAM secara berkala
- Gunakan Firewall
Pastikan hanya port yang diperlukan saja yang dibuka.
Contoh port penting:
- 6443 → Kubernetes API Server
- 80 → HTTP
- 443 → HTTPS
Fungsi Firewall:
- Meningkatkan keamanan server
- Mencegah akses tidak sah
- Mengurangi risiko serangan network
Contoh menggunakan UFW:
ufw allow 80 ufw allow 443 ufw allow 6443Keterangan:
Hindari membuka seluruh port server secara public karena dapat meningkatkan risiko keamanan cluster Kubernetes. - Backup Konfigurasi Kubernetes
Simpan file konfigurasi penting berikut:
/etc/rancher/k3s/k3s.yamlFungsi File:
- Digunakan untuk akses cluster Kubernetes
- Berisi konfigurasi koneksi kubectl
- Dibutuhkan untuk management cluster
Best Practice:
- Simpan backup di lokasi aman
- Jangan share kubeconfig secara public
- Gunakan permission file yang aman
Keterangan:
Jika file kubeconfig hilang atau rusak, akses management Kubernetes menggunakan kubectl dapat terganggu.
Kesimpulan
Menginstal K3s dan Kubernetes di Ubuntu 24.04 ternyata tidak serumit yang dibayangkan. Dengan beberapa perintah sederhana, kita sudah bisa memiliki cluster Kubernetes ringan yang siap digunakan untuk belajar maupun development aplikasi container.
K3s menjadi pilihan ideal bagi pemula karena lebih ringan, mudah dikonfigurasi, dan tetap kompatibel dengan ekosistem Kubernetes. Selain itu, Ubuntu 24.04 memberikan stabilitas yang baik untuk menjalankan container dan workload modern.
Jika baru mulai belajar container orchestration, K3s adalah langkah awal yang sangat direkomendasikan sebelum masuk ke Kubernetes skala enterprise yang lebih kompleks.


