앞에 게시글과 같이 깃 레포지토리 생성 후, github와 jenkins 연결
FROM python:3.9
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY r.txt /app/r.txt
COPY . /app
RUN pip install -r r.txt
apiVersion: apps/v1
kind: Deployment
metadata:
name: gunicorn-deployment-dev
namespace: cdh-dev
spec:
selector:
matchLabels:
type: web
replicas: 1
template:
metadata:
labels:
type: web
spec:
containers:
- name: container
image: cis07385/back:latest
command: ["/bin/sh", "-ec", "python manage.py makemigrations && python manage.py migrate && gunicorn config.wsgi --bind 0.0.0.0:8000"]
envFrom:
- configMapRef:
name: gunicorn-cm
ports:
- containerPort: 8000
docker login -u cis07385 -p (docker 비번)
docker build --tag cis07385/back:$BUILD_ID .
docker push cis07385/back:$BUILD_ID
sed -i "s/latest/$BUILD_ID/g" /gunicorn-deployment.yml
kubectl apply -f /gunicorn-deployment.yml
잘 작동한다.
물론 여기서 선행해야 할 것은, db 서비스와 db configmap, db pod 생성
gunicorn 서비스, gunicorn configmap
nginx 서비스(로드밸런서), nginx configmap 이다.
db에 저장한 데이터들을 backend에서 잘 불러온다.
접속은 front 서비스에서 제공해준 로드밸런서 ip를 이용해 접속한다.
각 서비스에서 이름을 이용해 파드들끼리 서비스 이름을 이용해 통신하게끔 해준다.
필자는 front의 서비스는 front-svc, back의 서비스는 gunicorn-svc, db의 서비스는 db-svc
configmap은 front-cm, gunicorn-cm, db-cm.
이렇게 정해놨다.