Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Cara Deploy Longhorn di Kubernetes Dengan Kubectl
  • Cara Deploy WordPress di Kubernetes Lengkap dengan SSL Let’s Encrypt
  • Panduan Lengkap Install MetalLB di Kubernetes (VPS/Bare Metal) dengan IP Publik
  • Panduan Lengkap Deploy Ingress NGINX dan Cert-Manager Kubernetes dengan HTTPS Otomatis (Let’s Encrypt)
  • Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)

Recent Comments

  1. Masdika.BIZ.ID on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  2. wwqqs on Cara Install Kubernetes dengan Ansible di 2 Server (Master dan Worker)
  3. Rio Ardiansyah on Panduan Lengkap Redis Docker untuk WordPress
  4. Masdika.BIZ.ID on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI
  5. fafiki on Cara Monitoring Status Disk RAID di Server Dell Menggunakan Bash Script dan PercCLI

Archives

  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Cara Deploy Longhorn di Kubernetes Dengan Kubectl

July 3, 2025 Tutorial by Masdika.BIZ.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

Post navigation

Prev
Write a comment Cancel Reply

Β© 2025 www.masdika.biz.id β€” Semua Hak Dilindungi