Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Dari Laptop Bekas Jadi Server Pribadi: Cara Membangun Home Server Murah Menggunakan ISP MyRepublic dengan Public IP
  • Pembuatan Subnet dan Alokasi IP Address pada Amazon Web Service VPC
  • Instalasi dan Konfigurasi AWS CLI pada EC2 (Lab Guide)
  • Membangun Arsitektur Web + Database Highly Available di AWS (RDS Multi-AZ)
  • Cara Reset Password OpenBSD di Proxmox via VNC

Recent Comments

  1. Alif on Jangan Gunakan latest Tag pada Docker Images! Ini Alasannya
  2. Sahrull on Panduan Lengkap Anti-DDoS: Installasi Iptables, Hardening, dan Cloudflare Proxy
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Categories

  • Tutorial

Masdika.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Cara Deploy Longhorn di Kubernetes Dengan Kubectl

July 3, 2025 Tutorial by Masdika.ID
Cara Deploy Longhorn di Kubernetes Dengan Kubectl

Longhorn adalah solusi penyimpanan (storage) terdistribusi yang sangat populer di Kubernetes. Dengan Longhorn, kamu bisa mengelola persistent storage yang handal dan scalable secara mudah. Artikel ini akan membahas cara deploy Longhorn di Kubernetes menggunakan kubectl, mengikuti dokumentasi resmi Longhorn v1.9.0. Yuk, simak step-by-step lengkapnya! πŸ‘‡

βš™οΈ Persiapan Sebelum Instalasi

Sebelum memasang Longhorn, pastikan hal-hal berikut sudah siap:

  • βœ… Node Kubernetes harus memenuhi persyaratan.
  • πŸ’Ύ Paket iSCSI initiator wajib terpasang di semua node, karena Longhorn menggunakan iSCSI untuk komunikasi block storage.
    Untuk CentOS/RHEL/Almalinux jalankan: sudo yum install -y iscsi-initiator-utils Untuk Ubuntu/Debian: sudo apt-get install -y open-iscsi
  • πŸ› οΈ Opsional, kamu bisa pakai Longhorn CLI untuk cek environment Longhorn.
  • ✏️ Jika ingin custom konfigurasi Longhorn, edit dulu file YAML sebelum apply.

🌐 Pasang Ingress Controller (NGINX) di Kubernetes

Sebelum buat Ingress Longhorn UI, pastikan Ingress Controller sudah terpasang di cluster kamu. NGINX Ingress Controller adalah pilihan populer dan mudah dipasang.

Cara install NGINX Ingress Controller:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.2/deploy/static/provider/cloud/deploy.yaml

Pantau pod ingress-nginx dengan perintah:

kubectl get pods -n ingress-nginx --watch

⏳ Tunggu sampai semua pod berstatus Running dan siap digunakan.

πŸ” Pasang Cert-Manager untuk SSL Let’s Encrypt

Cert-Manager berguna untuk mengelola sertifikat TLS otomatis dari Let’s Encrypt.

Cara install Cert-Manager:

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.0/cert-manager.yaml

Pantau pod cert-manager:

kubectl get pods -n cert-manager --watch

⏳ Pastikan semua pod dalam status Running sebelum melanjutkan konfigurasi ClusterIssuer.

πŸš€ Langkah Instalasi Longhorn

Langsung jalankan perintah ini untuk install Longhorn di cluster Kubernetes kamu:

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.9.0/deploy/longhorn.yaml

✨ Perintah ini akan membuat namespace longhorn-system dan men-deploy seluruh komponen Longhorn di sana. Mudah, kan?

πŸ‘€ Memantau Proses Instalasi

Untuk memantau apakah pod Longhorn sudah berjalan dengan baik, gunakan perintah:

kubectl get pods --namespace longhorn-system --watch

⏳ Tunggu hingga semua pod berstatus Running dan READY 1/1 atau 2/2 untuk beberapa pod.

βœ… Verifikasi Setelah Instalasi

Setelah beberapa menit, cek status pod dengan:

kubectl -n longhorn-system get pod

Kamu harus melihat output seperti ini:

NAME                                                READY   STATUS    RESTARTS   AGE
longhorn-ui-b7c844b49-w25g5                         1/1     Running   0          2m41s
longhorn-manager-pzgsp                              1/1     Running   0          2m41s
longhorn-csi-plugin-mbwqz                           2/2     Running   0          100s
...

🌐 Akses UI Longhorn via Ingress Controller

Untuk akses UI Longhorn melalui subdomain seperti longhorn.masdika.my.id, ikuti langkah berikut:

1. Buat folder konfigurasi dan file-file YAML

mkdir -p longhorn
cd longhorn

2. Buat auth-secret.yaml (Basic Auth Secret) πŸ”

Basic Auth menggunakan string username:password yang sudah di-encode ke format base64.

Misal username: test
Password: test

Cara membuat base64-nya di Linux/macOS/WSL:

echo -n 'test:test' | base64

Output:

dGVzdDp0ZXN0

Masukkan hasil ini ke auth di file:

apiVersion: v1
kind: Secret
metadata:
  name: basic-auth
  namespace: longhorn-system
type: Opaque
data:
  auth: dGVzdDp0ZXN0

3. Buat cluster-issuer.yaml (Cert-Manager Let’s Encrypt) πŸ”’

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    email: andika@herza.id
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

4. Buat ingress.yaml untuk Longhorn UI πŸ•ΈοΈ

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: longhorn-ui-ingress
  namespace: longhorn-system
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/auth-type: "basic"
    nginx.ingress.kubernetes.io/auth-secret: "basic-auth"
    nginx.ingress.kubernetes.io/auth-realm: "Restricted Area"
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - longhorn.masdika.my.id
    secretName: longhorn-tls
  rules:
  - host: longhorn.masdika.my.id
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: longhorn-frontend
            port:
              number: 80

5. Terapkan file YAML πŸ’»

kubectl apply -f auth-secret.yaml
kubectl apply -f cluster-issuer.yaml
kubectl apply -f ingress.yaml

🎯 Kesimpulan

Dengan mengikuti panduan ini, Longhorn akan terpasang dengan benar di Kubernetes, dan UI-nya dapat diakses aman lewat subdomain dengan TLS dan Basic Auth. Jangan lupa instal paket iSCSI di semua node dan pantau pod-nya agar semuanya berjalan lancar! πŸš€βœ¨

Share:
Tags: kuberneteslonghorn
Related Posts
Troubleshooting K3s: Semua Pod Rusak Setelah Reboot Karena CNI Flannel

Pendahuluan Bayangkan sebuah cluster Kubernetes yang kemarin masih berjalan normal. Semua service aktif, storage Longhorn stabil, dan aplikasi berjalan tanpa…

VM vs Container vs Pod – Perbedaan Lengkap untuk Cloud & DevOps!

Dalam dunia Cloud Computing dan DevOps, tiga istilah yang paling sering kita dengar adalah Virtual Machine (VM), Container, dan Pod….

Post navigation

Prev
Next
Write a comment Cancel Reply


Β© 2025 www.masdika.id β€” Semua hak cipta dilindungi