Maxima's Lab

[Kubernetes] Flask 애플리케이션을 Kubernetes 클러스터 배포하는 방법 본문

Kubernetes

[Kubernetes] Flask 애플리케이션을 Kubernetes 클러스터 배포하는 방법

Minima 2024. 3. 3. 01:46
728x90
SMALL

안녕하세요, 오늘은 Flask 애플리케이션을 Kubernetes 클로스터에 배포하는 방법에 대해서 알아보겠습니다.

 

다음과 같은 과정으로 이루어집니다.

 

  • Flask 애플리케이션 준비
  • Dockerfile 작성
  • Docker 이미지 빌드 및 푸시
  • 쿠버네티스 Deployment 정의
  • 쿠버네티스 Service 정의
  • Deployment 및 Service 적용
  • 애플리케이션 접근 확인

먼저, Flask 애플리케이션을 준비하는 단계입니다. (app.py)

 

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Kubernetes!'

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=8080)

 


이어서, Dockerfile을 작성합니다. 

 

# 기본 이미지로 파이썬 3.8을 사용
FROM python:3.8-slim

# 작업 디렉토리 설정
WORKDIR /app

# 애플리케이션 파일 복사
COPY . /app

# 필요한 패키지 설치
RUN pip install --no-cache-dir flask

# 애플리케이션 실행
CMD ["python", "app.py"]

 


다음은 Docker 이미지를 빌드합니다.

 

docker build -t my-flask-app:v1 .

 


쿠버네티스 Deployment를 정의하는 YAML 파일을 작성합니다. (flask-deployment.yaml)

 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: flask-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: flask-app
  template:
    metadata:
      labels:
        app: flask-app
    spec:
      containers:
      - name: flask-app
        image: my-flask-app:v1
        ports:
        - containerPort: 8080

 


이어서, Flask 애플리케이션을 외부에서 접근하기 위해 Service를 정의하는 YAML 파일을 작성합니다. (flask-servie.yaml)

 

apiVersion: v1
kind: Service
metadata:
  name: flask-service
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: flask-app

 


마지막으로, kubectl apply 명령어를 사용하여 Deployment와 Service를 쿠버네티스 클러스터에 적용합니다.

 

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

 


그리고, kubectl get services 명령어를 사용하여 외부 IP 또는 URL을 확인할 수 있습니다.

 

위의 명령어를 통해 출력되는 EXTERNAL-IP가 외부에서 서비스에 접근할 수 있는 IP 주소입니다.

웹 브라우저에서 "http://EXTERNAL-IP"로 입력하면 쿠버네티스 클러스터에서 실행 중인 Flask 애플리케이션의 홈페이지에 접속할 수 있습니다.

 


지금까지, Flask 애플리케이션을 Kubernetes 클러스터 배포하는 방법에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments