Setelah sukses mencoba Kubernetes di Binar Academy untuk semua service di aplikasi, kerjaan selanjutnya adalah memigrasikan service-service lain. Salah satunya adalah Metabase. Metabase di Binar Academy sebelumnya masih menggunakan AWS EBS (Elastic Beanstalk).
Bagaimana saya memigrasikan Metabase dari EBS ke K8S?
Berikut tahap yang saya lakukan.
- Hentikan layanan metabase di EBS.
- Catat credential database dari RBS (rds url, username, password, db_name)
- Buat YML K8s untuk Metabase.
YML ini saya temukan di github zenyui | https://github.com/zenyui/metabase-gke. Thanks bro. Saya memodifikasi sesuai kebutuhan saya, K8s with kops on AWS. - Lakukan deployment
kubectl apply -f recipes/p-metabase.yml - Atur domain ELB ke domain yang diinginkan pada dashboard (saya menggunakan cloudflare)
- Lakukan konfigurasi ulang Metabase.
- Hapus service Metabase dari AWS EBS.
Berikut YML Metabase:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Deploy the pods | |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: metabase | |
namespace: default | |
labels: | |
app: metabase | |
env: production | |
spec: | |
selector: | |
matchLabels: | |
app: metabase | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: metabase | |
env: production | |
spec: | |
containers: | |
– name: metabase | |
image: metabase/metabase | |
ports: | |
– containerPort: 3000 | |
name: metabase | |
env: | |
– name: MB_DB_USER | |
valueFrom: | |
secretKeyRef: | |
name: metabase-prod | |
key: MB_DB_USER | |
– name: MB_DB_PASS | |
valueFrom: | |
secretKeyRef: | |
name: metabase-prod | |
key: MB_DB_PASS | |
– name: MB_DB_HOST | |
valueFrom: | |
secretKeyRef: | |
name: metabase-prod | |
key: MB_DB_HOST | |
– name: MB_DB_DBNAME | |
valueFrom: | |
secretKeyRef: | |
name: metabase-prod | |
key: MB_DB_DBNAME | |
– name: MB_DB_TYPE | |
value: "postgres" | |
– name: MB_DB_PORT | |
value: "5432" | |
— | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: metabase-service | |
namespace: default | |
labels: | |
app: metabase | |
env: production | |
spec: | |
type: NodePort | |
selector: | |
app: p-metabase | |
ports: | |
– port: 3000 | |
protocol: TCP | |
— |
Semoga membantu.
Estu~