Manajemen Kubernetes
Gambaran Umum
Vapor menyediakan kemampuan manajemen cluster Kubernetes yang komprehensif, memungkinkan Anda mengelola workload, memantau resource, dan deploy aplikasi langsung dari antarmuka web. Bagian Kubernetes terintegrasi mulus dengan cluster Anda, menyediakan operasi dasar dan fitur lanjutan seperti manajemen Helm chart.
Mengakses Fitur Kubernetes
Navigasi ke bagian Kubernetes melalui sidebar:
Kubernetes
├── Workloads (Pod, Deployment, StatefulSet, dll.)
├── Networks (Service, Ingress, NetworkPolicy)
├── Storages (PVC, PV, StorageClass)
├── Configurations (ConfigMap, Secret)
├── Nodes (Node cluster dan resource)
├── CRDs (Custom Resource Definition)
└── Helm Charts (Manajemen paket)Manajemen Workload
Pod
Tampilan Pod menyediakan manajemen pod yang komprehensif:

Fitur Daftar Pod
Filter Namespace
- Pilih "Semua Namespace" atau namespace spesifik
- Perpindahan namespace cepat
- Isolasi namespace untuk keamanan
Pencarian dan Filter
- Pencarian real-time berdasarkan nama pod
- Filter berdasarkan status (Running, Pending, Failed)
- Urutkan berdasarkan umur, status, atau penggunaan resource
Indikator Status
- 🟢 RUNNING: Pod sehat dan berjalan
- 🟡 PENDING: Pod sedang dijadwalkan atau memulai
- 🔴 FAILED: Pod crash atau gagal memulai
- 🟠 UNKNOWN: Status pod tidak dapat ditentukan
Tampilan Informasi Pod
Setiap entri pod menampilkan:
- Nama: Identifier pod lengkap
- Namespace: Namespace Kubernetes
- Status: Status pod saat ini
- Replika: Jumlah kontainer
- Umur: Waktu sejak pembuatan
- Aksi: Menu aksi cepat
Detail Pod
Klik pada pod mana pun untuk melihat informasi terperinci:

Informasi Dasar
Nama: virt-launcher-019840fd-2c27-7d14-bbeb-98263371bda7-cnjvc
Namespace: 3cca58ab-5e85-473e-90a3-2862c2cf8f20
UID: 6e21864d-30e6-464d-bf4f-d73889bc3ba0
Resource Version: 1233755250
Waktu Pembuatan: 2025-07-25T09:52:03Z
Umur: 13 hari, 3 jamInformasi Status
Phase: Running
QoS Class: Burstable
Waktu Mulai: 2025-07-25T09:52:03ZInformasi Jaringan
IP Pod: 10.0.8.22
IP Host: 172.16.1.2
Node: avid5Membuat Resource
Vapor mendukung pembuatan resource Kubernetes menggunakan YAML atau JSON:

Proses Pembuatan Resource
- Klik tombol "Create" di tampilan workload
- Masukkan definisi resource dalam format YAML atau JSON
- Auto-deteksi format mengidentifikasi sintaks
- Validasi terjadi sebelum pengiriman
- Apply untuk membuat resource
Contoh Pembuatan Pod
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: default
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Operasi Pod
Melihat Log
Akses log pod real-time:

Fitur Log:
- Streaming real-time
- Pencarian dalam log
- Tampilan timestamp
- Format JSON untuk log terstruktur
- Kemampuan ekspor
Menghapus Pod
Penghapusan aman dengan konfirmasi:

Keamanan Penghapusan:
- Dialog konfirmasi menampilkan detail pod
- Peringatan tentang penghapusan permanen
- Verifikasi namespace
- Opsi batal tersedia
Deployment
Kelola deployment aplikasi dengan:
Fitur Deployment
- Scaling: Sesuaikan jumlah replika
- Rolling Update: Deployment tanpa downtime
- Rollback: Kembalikan ke versi sebelumnya
- Konfigurasi Strategi: RollingUpdate atau Recreate
Membuat Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80Operasi Deployment
- Scale: Sesuaikan jumlah replika naik atau turun
- Update: Ubah image atau konfigurasi
- Pause/Resume: Kontrol proses rollout
- History: Lihat riwayat revisi
StatefulSet
Untuk aplikasi stateful yang memerlukan:
- Identitas jaringan yang stabil
- Penyimpanan persisten
- Deployment dan scaling berurutan
- Terminasi berurutan
Contoh StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mysql
spec:
serviceName: mysql
replicas: 3
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8.0
env:
- name: MYSQL_ROOT_PASSWORD
value: "secretpassword"
volumeMounts:
- name: mysql-storage
mountPath: /var/lib/mysql
volumeClaimTemplates:
- metadata:
name: mysql-storage
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10GiDaemonSet
Deploy pod di setiap node:
- Kolektor log
- Agent monitoring
- Plugin jaringan
- Daemon penyimpanan
Job dan CronJob
Job
Tugas satu kali:
- Pemrosesan data
- Operasi batch
- Tugas pemeliharaan
CronJob
Tugas terjadwal berulang:
- Backup
- Pembuatan laporan
- Operasi pembersihan
Jaringan
Service
Ekspos aplikasi dalam cluster:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIPTipe Service:
- ClusterIP: Akses internal cluster
- NodePort: Akses eksternal melalui port node
- LoadBalancer: Load balancer cloud provider
- ExternalName: Record DNS CNAME
Ingress
Routing HTTP/HTTPS:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-service
port:
number: 80Penyimpanan
Persistent Volume Claim (PVC)
Request penyimpanan untuk pod:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: fast-ssdStorage Class
Definisikan tipe penyimpanan:
- Tier performa
- Kebijakan backup
- Pengaturan enkripsi
- Konfigurasi provisioner
Konfigurasi
ConfigMap
Simpan data konfigurasi:
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
database.conf: |
host=localhost
port=5432
name=myapp
app.properties: |
debug=false
version=1.0.0Secret
Kelola data sensitif:
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
type: Opaque
data:
password: cGFzc3dvcmQxMjM= # base64 encodedManajemen Helm Chart
Vapor menyertakan dukungan Helm penuh:
Operasi Helm
- List Release: Lihat semua chart yang di-deploy
- Install Chart: Deploy dari repository
- Upgrade Release: Update ke versi baru
- Rollback: Kembalikan ke release sebelumnya
- Uninstall: Hapus chart yang di-deploy
Menginstal Helm Chart
# Contoh: Menginstal Prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/prometheusMengelola Release
Lihat dan kelola release Helm:
- Nama release dan namespace
- Versi chart
- Versi aplikasi
- Status (deployed, failed, pending)
- Timestamp terakhir diperbarui
Custom Resource Definition (CRD)
Perluas Kubernetes dengan resource kustom:
Melihat CRD
- Daftar semua CRD yang terinstal
- Lihat detail dan versi CRD
- Akses resource kustom
- Monitor status CRD
CRD Umum
- Sertifikat cert-manager
- Service mesh Istio
- Monitoring Prometheus
- Resource yang dikelola operator
Manajemen Node
Monitor node cluster:
- Alokasi resource
- Penjadwalan pod
- Kondisi node
- Taint dan toleration
Praktik Terbaik
Manajemen Resource
- Set limit resource: Cegah kehabisan resource
- Gunakan namespace: Isolasi workload
- Label konsisten: Manajemen lebih mudah
- Monitor resource: Lacak pola penggunaan
Keamanan
- Gunakan RBAC: Kontrol akses berbasis peran
- Amankan secret: Enkripsi data sensitif
- Network policy: Kontrol aliran trafik
- Pod security: Gunakan security context
High Availability
- Multiple replika: Hindari single point of failure
- Pod disruption budget: Kontrol pemeliharaan
- Liveness probe: Pemulihan otomatis
- Readiness probe: Manajemen trafik
Pemecahan Masalah
Masalah Umum
Pod Tidak Memulai
- Periksa event pod
- Tinjau log kontainer
- Verifikasi ketersediaan image
- Periksa batasan resource
Service Discovery
- Verifikasi selector service
- Periksa pembuatan endpoint
- Test resolusi DNS
- Validasi network policy
Masalah Penyimpanan
- Periksa binding PVC
- Verifikasi storage class
- Tinjau permission volume
- Monitor ruang disk
Integrasi dengan CI/CD
Fitur Kubernetes Vapor terintegrasi dengan:
- Workflow GitOps
- Pipeline CI/CD
- Helm chart
- Perintah kubectl
Langkah Selanjutnya
- Jelajahi Manajemen Kontainer
- Pelajari tentang Integrasi API
- Tinjau Praktik Terbaik Keamanan
← Sebelumnya: Manajemen Kontainer | Selanjutnya: Manajemen Pengguna →
