SEKSI-02 — Rencana Implementasi Fase-1¶
Langkah Implementasi Fase 1 (Opsi D)¶
Fase 1 menyiapkan platform OneKE skema Opsi D beserta stack container (HAProxy/Ingress, Redis, ProxySQL, MySQL Galera) dan pemisahan storage dua tier di atas Longhorn. Seluruh kebutuhan komputasi (9 vCPU / 44 GB) berada dalam sisa kuota bebas (9,75 vCPU / 102 GB).
Prasyarat¶
Pastikan tersedia: template Service OneKE 1.29 (ID 0) beserta VM template pendukung (vnf = 15, master/worker = 16, storage = 17); satu VNET publik untuk VNF/Gateway dan satu VNET privat untuk lalu lintas internal Kubernetes; serta izin melampirkan disk data ke worker dari datastore SSD dan HDD.
Datastore yang dipakai sudah terverifikasi pada halaman Settings:
| Tier | Datastore ID | Total | Sisa | Plafon Pemakaian | Peruntukan |
|---|---|---|---|---|---|
| SSD (IOPS tinggi) | 1 | 2 TB | 2 TB (kosong) | 1 TB | MySQL Galera / Redis (basis data) |
| HDD (kapasitas) | 101 | 5 TB | 3,8 TB | 2 TB | Data aplikasi umum / arsip / backup |
Note
Pemetaan tier disimpulkan dari kapasitas sisa; konfirmasikan ke oneadmin bahwa DS 1 memang berbasis SSD dan DS 101 berbasis HDD.
Tahapan Eksekusi¶
1. Konfigurasi Parameter Service Template¶
Saat instansiasi Service OneKE, isi variabel ONEAPP_* yang relevan: token RKE2, pilihan CNI
(Cilium atau Canal), rentang MetalLB untuk LoadBalancer internal, aktifkan Longhorn, dan
aktifkan Traefik/Ingress bila dipakai. Untuk peran VNF, atur HAProxy VIP, DNS, NAT, dan Router
sesuai VNET publik. Simpan token RKE2 dan VIP untuk verifikasi.
2. Terapkan Skema Opsi D pada Cardinality Peran¶
| Peran | VM Template | Cardinality | Sizing (override) |
|---|---|---|---|
| vnf | 15 | 1 | 1 vCPU / 4 GB |
| master (non-HA) | 16 | 1 | 2 vCPU / 8 GB |
| worker | 16 | 4 | 1,5 vCPU / 8 GB (per worker) |
| storage | 17 | 0 | Tidak di-deploy (Longhorn di worker) |
Total 9 vCPU / 44 GB. Karena semua peran non-vnf berparent ke vnf dengan cooldown 120 detik, urutan deploy otomatis: vnf → master → worker.
3. Sediakan Disk Data untuk Dua Tier Storage¶
Longhorn mengonsumsi disk lokal worker, sehingga pemisahan tier dilakukan dengan melampirkan disk data tambahan ke tiap worker dari datastore yang sesuai:
| Tier | Datastore | Ukuran per worker | Total (4 worker) |
|---|---|---|---|
| SSD-data | DS 1 | ~250 GB | ~1.000 GB (plafon 1 TB) |
| HDD-data | DS 101 | ~500 GB | ~2.000 GB (plafon 2 TB) |
Setelah langkah ini tiap worker punya tiga disk: disk OS/root, satu disk SSD-data (dari DS 1), dan satu disk HDD-data (dari DS 101). Pelampiran disk dilakukan lewat OpenNebula (koordinasi dengan oneadmin untuk pemilihan datastore).
4. Instansiasi Service dan Verifikasi Cluster¶
Deploy service, tunggu semua peran berstatus RUNNING, lalu ambil kubeconfig dari master dan verifikasi:
kubectl get nodes # harus tampak 1 master + 4 worker Ready
kubectl get pods -A # komponen RKE2/CNI/Longhorn sehat
kubectl -n longhorn-system get pods
Pastikan juga VIP HAProxy pada VNF menerima trafik dari jaringan publik.
5. Konfigurasi Longhorn dan Dua StorageClass¶
Di Longhorn, daftarkan disk SSD-data dan HDD-data tiap worker sebagai disk terpisah, lalu beri
tag: disk dari DS 1 diberi tag ssd, disk dari DS 101 diberi tag hdd. Buat dua StorageClass
dengan replika 2×:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-ssd
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
numberOfReplicas: "2"
diskSelector: "ssd"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-hdd
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
numberOfReplicas: "2"
diskSelector: "hdd"
Dengan replika 2×, kapasitas logis SSD ≈ 500 GB dan HDD ≈ 1 TB, keduanya di dalam plafon.
6. Deploy Stack Aplikasi dengan Pemetaan Storage¶
| Komponen | Replica | Request | Limit | StorageClass / PVC |
|---|---|---|---|---|
| HAProxy / Ingress | 1 | 0,5 vCPU / 512 MB | 1 vCPU / 1 GB | — (stateless) |
| Redis (Cache) | 1 | 0,5 vCPU / 1 GB | 1 vCPU / 2 GB | longhorn-ssd, ~10–20 GB (opsional) |
| ProxySQL | 1 | 0,5 vCPU / 512 MB | 1 vCPU / 1 GB | — (stateless) |
| MySQL Galera | 3 | 0,5 vCPU / 1 GB per node | 1 vCPU / 2 GB per node | longhorn-ssd, ~50 GB/node |
| Volume aplikasi | — | — | — | longhorn-hdd, ~100–200 GB/layanan |
Contoh PVC untuk satu node MySQL Galera pada tier SSD:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: galera-data-0
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: longhorn-ssd
resources:
requests:
storage: 50Gi
7. Validasi dan Migrasi Rolling¶
Setelah stack sehat, jalankan migrasi tanpa downtime: muat dan sinkronkan salinan data layanan lama ke Galera, uji fungsional aplikasi terhadap endpoint baru secara paralel dengan VM lama yang tetap jalan, alihkan trafik per layanan bertahap lewat VNF/Ingress sambil memantau performa dan konsistensi, lalu nonaktifkan VM hosting lama hanya setelah pengganti terbukti stabil.
Ringkasan Distribusi Storage Fase 1¶
| Tier | Datastore | Pemakaian Awal (Fisik) | Plafon | Sisa Fisik |
|---|---|---|---|---|
| SSD | DS 1 | ~300–350 GB (Galera + Redis, replika 2×) | 1 TB | 2 TB |
| HDD | DS 101 | ~400–800 GB logis (+ backup, dengan replika tetap dalam plafon) | 2 TB | 3,8 TB |
Prinsip Rollback
Selama VM lama belum dinonaktifkan, arah trafik dapat dikembalikan seketika ke VM lama bila ditemukan masalah, sehingga risiko migrasi rendah.
Sumber: sispada.ums.id/reports/oneke/