Thursday, March 4, 2021

Cara Deploy Aplikasi Python Flask di Kubernetes


Pada tutorial kali ini kita akan membuat supaya aplikasi python yang menggunakan framework Flask yang kita buat bisa di deploy dengan mudah di platform Kubernetes. 

Dicontohkan disini, kita akan membuat sebuah image container dengan nama flask-image.

Langkah pertama, buat sebuah file yaml untuk Kubernetes dengan nama flask.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask-deployment
spec:
  selector:
    matchLabels:
      app: flask
  replicas: 1
  template:
    metadata:
      labels:
        app: flask
    spec:
      containers:
      - name: flask
        image: flask-image
        ports:
          - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: flask-service
spec:
  ports:
  - port: 80
    targetPort: 80
    name: http
  selector:
    app: flask

pada file deployment tersebut, kita tentukan ada beberapa bagian. Misal untuk bagian deployment, pods, services dll. 

untuk langkah selanjutnya, kita deploy aplikasi tersebut di Kubernetes:

kubectl apply -f flask.yaml

pastikan kita mendapatkan konfirmasi created seperti ini:

Outputservice/flask-service created

deployment.apps/flask-deployment created

bisa juga dicek apakah service container yang didesain sudah ada:

kubectl get svc flask-service

contoh hasilnya:

OutputNAME              TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
flask-service     ClusterIP   172.21.9.6            80/TCP    60s

langkah selanjutnya kita perlu sebuah ingress NGINX. buat saja sebuah file baru dengan nama nginx-ingress.yaml:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: flask-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
spec:
  rules:
  - host: foo.example.com
    http:
      paths:
      backend:
        serviceName: flask-service
        servicePort: http

lalu apply dengan kubectl

kubectl apply -f nginx-ingress.yaml

Selamat mencoba!

0 comments:

Post a Comment