Skip to content

Latest commit

 

History

History

2_docker

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Docker, Flask, Kubernetes: Membangun Aplikasi Tebak Angka dengan Python

Credits

Angelomarchaidez

Dalam artikel ini, kita akan membangun aplikasi Tebak Angka sederhana menggunakan Python, Flask, dan Docker, serta membahas cara mengelola aplikasi tersebut menggunakan Kubernetes. Tujuan dari tutorial ini adalah untuk memberikan pemahaman dasar tentang bagaimana mengintegrasikan berbagai teknologi ini dalam satu proyek.

Persyaratan

Sebelum memulai, pastikan Anda telah menginstal hal-hal berikut:

  1. Python: Pastikan versi terbaru telah diinstal di sistem Anda.
  2. Docker: Instal Docker dan pastikan bahwa Docker Daemon berjalan dengan baik.
  3. Kubernetes: Opsional untuk bagian pengelolaan aplikasi di Kubernetes.

1. Membuat Aplikasi Flask

Pertama, buatlah aplikasi Flask sederhana yang akan menjadi dasar dari aplikasi Tebak Angka kita. Buat direktori baru dan tambahkan file bernama app.py. Isinya adalah sebagai berikut:

from flask import Flask, jsonify
import random

app = Flask(__name__)

@app.route('/lottery', methods=['GET'])
def lottery():
    numbers = sorted(random.sample(range(1, 50), 6))
    return jsonify(numbers)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Kode ini membuat aplikasi Flask dengan endpoint /lottery yang mengembalikan 6 angka acak dari 1 hingga 49. Flask akan berjalan di port 5000.

2. Membuat Dockerfile

Selanjutnya, kita akan membuat file bernama Dockerfile untuk membangun image Docker dari aplikasi kita.

# Gunakan image dasar Python
FROM python:3.9-slim

# Menetapkan direktori kerja
WORKDIR /app

# Menyalin file requirements.txt dan menginstal dependensi
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

# Menyalin kode aplikasi
COPY . .

# Menentukan perintah untuk menjalankan aplikasi
CMD ["python", "app.py"]

Tambahkan file requirements.txt yang berisi:

Flask==2.0.1

3. Membangun dan Menjalankan Docker Container

Sekarang, kita dapat membangun image Docker dan menjalankan container.

  1. Bangun image Docker:

    docker build -t lottery-app .
  2. Jalankan container Docker:

    docker run -d -p 5000:5000 lottery-app

Setelah menjalankan perintah ini, aplikasi akan dapat diakses melalui http://localhost:5000/lottery.

4. Mengelola Aplikasi dengan Kubernetes

Untuk mengelola aplikasi di Kubernetes, kita perlu membuat file konfigurasi Kubernetes untuk deployment dan service.

Buat file bernama deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: lottery-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: lottery
  template:
    metadata:
      labels:
        app: lottery
    spec:
      containers:
      - name: lottery
        image: lottery-app
        ports:
        - containerPort: 5000

Dan file service.yaml untuk membuat service Kubernetes:

apiVersion: v1
kind: Service
metadata:
  name: lottery-service
spec:
  selector:
    app: lottery
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
  type: LoadBalancer

Setelah membuat file-file ini, jalankan perintah berikut untuk mendeploy aplikasi di Kubernetes:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Dengan konfigurasi ini, Kubernetes akan mengelola aplikasi Tebak Angka dengan tiga replika dan membuat LoadBalancer yang memungkinkan akses eksternal ke aplikasi.

Tugas

Dengan menggunakan prinsip yang sama, muatlah aplikasi yang anda buat di hands-on 1 dalam sebuah environment docker. Kemudian deploy aplikasi tersebut di kubernetes.

  • Dokumentasikan setiap proses yang anda lakukan
  • Buatlah laporan dengan menggunakan LaTeX menggunakan overleaf dan template IF ITERA
  • Sertakan screenshot dari setiap proses
  • Sertakan referensi (jika ada) dan attachment percakapan dengan AI LLM (apabila ada) pada bagian akhir dari laporan.
  • Unggah docker anda di Docker Hub dan kirimkan link docker anda pada laporan

Pengumpulan

  • Deadline: 8 November 2024 | Pukul 23.59 WIB

    Pengurangan nilai 10% untuk setiap jam keterlambatan

  • Link Pengumpulan: Google Form