Ingin deploy aplikasi di Kubernetes dengan mudah? Kubero adalah solusinya! Artikel ini akan memandu Anda melalui instalasi Kubero, termasuk komponen yang diperlukan dan langkah-langkah instalasi.
Persiapan Sebelum Instalasi
Sebelum memulai instalasi Kubero, pastikan Anda memiliki hal-hal berikut:
- Cluster Kubernetes: Kubero dapat dijalankan di berbagai cluster Kubernetes. Jika Anda belum memilikinya, Anda dapat menggunakan Kind untuk membuat cluster lokal di desktop Anda.
- kubectl:
kubectl
adalah tool baris perintah untuk mengelola cluster Kubernetes. Pastikankubectl
sudah terinstal dan terkonfigurasi dengan benar. - Kubero CLI (Opsional): Kubero CLI adalah tool opsional yang dapat membantu Anda dalam instalasi dan pengelolaan Kubero.
Catatan:
- Kubero didesain untuk bekerja dengan Nginx Ingress Controller, Metrics Server, dan Cert Manager. Jika Anda menggunakan Ingress Controller lain, Anda perlu menyesuaikan langkah instalasi.
- Beberapa fitur seperti pengaturan metrik dan proxy mungkin tidak berfungsi dengan baik jika menggunakan Ingress Controller lain.
Komponen Kubero
Instalasi Kubero terdiri dari beberapa komponen berikut:
- Ingress Controller: Komponen ini berfungsi untuk merutekan trafik ke aplikasi Anda di cluster Kubernetes.
- Metrics Server: Komponen ini diperlukan untuk menampilkan penggunaan CPU dan Memori pada Kubero UI.
- Cert Manager: Komponen ini digunakan untuk generate dan mengelola sertifikat TLS untuk keamanan aplikasi Anda.
- Monitoring Stack (opsional): Komponen ini diperlukan untuk memantau aplikasi Anda dengan statistik jangka panjang.
- Kubero Operator: Komponen inti yang mengelola instalasi dan konfigurasi aplikasi Anda di Kubernetes.
- Kubero UI: Antarmuka pengguna berbasis web untuk mengelola dan memantau aplikasi Kubero Anda.
Instalasi Komponen Kubero
Ada dua opsi instalasi Kubero:
- Instalasi Minimal: Instalasi minimal hanya akan menginstal Kubero Operator dan resource yang dibutuhkan. Kubero UI akan diinstal pada langkah terpisah.
- Instalasi Penuh dengan OLM (Operator Lifecycle Manager): Opsi ini akan menginstal OLM dan Kubero Operator secara bersamaan. Sama seperti instalasi minimal, Kubero UI akan diinstal pada langkah terpisah.
Mari kita mulai dengan instalasi minimal:
A. Instalasi Ingress Controller, Metrics Server, dan Cert Manager
- Ingress Controller:
- Untuk Kind:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
Untuk penyedia layanan cloud lainnya, referensi resources resminya
2. Metrics Server:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
3. Cert Manager:
kubectl apply -f https://operatorhub.io/install/cert-manager.yaml
B. Instalasi Monitoring Stack (opsional)
Untuk memantau aplikasi Anda dengan statistik jangka panjang, Anda perlu menginstal Prometheus dan kube-metrics.
kubectl apply -f https://raw.githubusercontent.com/kubero-dev/kubero-operator/main/config/samples/application_v1alpha1_kuberoprometheus.yaml
Catatan: Pastikan Ingress Controller Nginx Anda dikonfigurasi dengan benar sesuai dokumentasi: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/monitoring.md
Instalasi Kubero UI
Kubero UI menyediakan antarmuka web untuk mengelola instalasi Kubero Anda. Ada dua cara untuk menginstal Kubero UI:
Menggunakan Kubero CLI:
kubero install -c kubero-ui
Menggunakan kubectl:
a. Buat namespace untuk Kubero UI:
kubectl create namespace kubero
b. Buat secret untuk Kubero UI (sesuaikan dengan kebutuhan Anda):
kubectl create secret generic kubero-secrets \
--from-literal=KUBERO_WEBHOOK_SECRET=$(openssl rand -hex 20) \
--from-literal=KUBERO_SESSION_KEY=$(openssl rand -hex 20) \
--from-literal=GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_TOKEN \
-n kubero
Keterangan:
Variable | Required | Description |
---|---|---|
GIT_DEPLOYMENTKEY_PUBLIC | deprecated | (Bug in Operator =< v0.0.70, set to random string) |
GIT_DEPLOYMENTKEY_PRIVATE_B64 | deprecated | (Bug in Operator =< v0.0.70, set to random string) |
KUBERO_WEBHOOK_SECRET | required | Random secret string |
KUBERO_SESSION_KEY | required | Random secret string |
KUBECONFIG_BASE64 | optional | Base64 encoded Kubeconfig, may contain multiple contexts (required for multi cluster) |
KUBERO_USERS | optional | Base64 encoded jsonfile (see Authentication chapter) |
GITHUB_PERSONAL_ACCESS_TOKEN | optional | Personal access token for GitHub API |
GITEA_PERSONAL_ACCESS_TOKEN | optional | Personal access token for Gitea API |
Deploy Kubero UI dengan perintah:
kubectl apply -f https://raw.githubusercontent.com/kubero-dev/kubero-operator/main/config/samples/application_v1alpha1_kubero.yaml -n kubero
Tunggu sampai proses selesai. Silakan lanjutkan dengan proses Konfigurasi.