Menginstal K3s dan Kubernetes di Ubuntu 24.04

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.

  1. Update Package Sistem

    Jalankan perintah berikut:

    sudo apt update && sudo apt upgrade -y

    Fungsi:

    • 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.
  2. Install Package Pendukung

    Install package berikut:

    sudo apt install curl wget nano -y

    Fungsi Package:

    • curl
      Digunakan untuk download script instalasi K3s.
    • wget
      Digunakan untuk download file tambahan jika diperlukan.
    • nano
      Text editor sederhana untuk edit konfigurasi.
  3. 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.
  4. Cek Status K3s

    Setelah instalasi selesai, cek apakah service K3s berjalan:

    sudo systemctl status k3s

    Fungsi:

    • 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.

  1. Cek Node Kubernetes

    Gunakan perintah berikut:

    sudo kubectl get nodes

    Fungsi:

    • 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+k3s

    Penjelasan 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.

  1. Buat Directory Konfigurasi Kubernetes

    Gunakan perintah berikut:

    mkdir -p $HOME/.kube

    Fungsi:

    • Membuat folder konfigurasi Kubernetes user
    • Digunakan untuk menyimpan file kubeconfig
    • Parameter -p otomatis membuat parent directory jika belum ada
  2. Copy File Konfigurasi K3s

    Gunakan perintah berikut:

    sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config

    Fungsi:

    • Menyalin file konfigurasi cluster Kubernetes
    • Menghubungkan kubectl user ke cluster K3s
    • Membuat akses kubectl tanpa sudo
  3. Ubah Permission File Config

    Gunakan perintah berikut:

    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    Fungsi:

    • 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.
  4. Testing Kubectl Tanpa Sudo

    Kemudian tes kembali menggunakan:

    kubectl get nodes

    Jika berhasil biasanya muncul:

    NAME     STATUS   ROLES                  AGE   VERSION
    master   Ready    control-plane,master   5m    v1.xx.x+k3s

    Fungsi:

    • 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.

  1. Deploy Nginx

    Jalankan perintah berikut:

    kubectl create deployment nginx --image=nginx

    Fungsi:

    • 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.
  2. Cek Deployment

    Gunakan perintah berikut:

    kubectl get deployment

    Fungsi:

    • 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
  3. Cek Pod

    Gunakan perintah berikut:

    kubectl get pods

    Fungsi:

    • 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   0

    Jika status pod menunjukkan:

    Running

    berarti 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.

  1. Expose Service

    Gunakan perintah berikut:

    kubectl expose deployment nginx --type=NodePort --port=80

    Fungsi:

    • 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.
  2. Cek Service

    Gunakan perintah berikut:

    kubectl get svc

    Fungsi:

    • 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/TCP

    Penjelasan 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.
  3. Akses Aplikasi

    Aplikasi dapat diakses melalui browser:

    http://IP_SERVER:30080

    Fungsi:

    • 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.

  1. Melihat Semua Pod
    kubectl get pods

    Fungsi:

    • Menampilkan seluruh pod yang berjalan
    • Melihat status container aplikasi
    • Digunakan untuk monitoring deployment

    Contoh status pod:

    Running
    Pending
    CrashLoopBackOff
    Keterangan:
    Command ini paling sering digunakan untuk troubleshooting aplikasi Kubernetes.
  2. Melihat Service
    kubectl get svc

    Fungsi:

    • Menampilkan seluruh service Kubernetes
    • Melihat port akses aplikasi
    • Mengetahui tipe service seperti ClusterIP atau NodePort

    Service digunakan sebagai penghubung antara user dan pod aplikasi.

  3. Melihat Node
    kubectl get nodes

    Fungsi:

    • Menampilkan seluruh node Kubernetes
    • Melihat status node cluster
    • Memastikan node dalam kondisi Ready

    Contoh status normal:

    STATUS: Ready
  4. Melihat Deployment
    kubectl get deployment

    Fungsi:

    • Menampilkan deployment aplikasi
    • Melihat jumlah replica pod
    • Memastikan deployment berhasil berjalan

    Deployment digunakan untuk mengelola aplikasi container secara otomatis.

  5. Menghapus Deployment
    kubectl delete deployment nginx

    Fungsi:

    • 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.

  1. Uninstall K3s

    Gunakan perintah berikut:

    /usr/local/bin/k3s-uninstall.sh

    Fungsi:

    • 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.

  1. 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.
  2. 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
  3. 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 6443
    Keterangan:
    Hindari membuka seluruh port server secara public karena dapat meningkatkan risiko keamanan cluster Kubernetes.
  4. Backup Konfigurasi Kubernetes

    Simpan file konfigurasi penting berikut:

    /etc/rancher/k3s/k3s.yaml

    Fungsi 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.
 
 
 
 


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466