
1 . Dockerfile
vi Dockerfile
FROM python:3.8
ENV FLASK_APP=main
COPY . /usr/src/main/
WORKDIR /usr/src/main
RUN pip3 install -r requirements.txt
CMD ["flask", "run", "--host=0.0.0.0", "--port=5000"]
EXPOSE 5000/tcp
docker run -it --name myweb -p 5000:5000 flask:testv1 
1 . ml-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ml-deploy
spec:
  replicas: 2
  selector:
    matchLabels:
      tier: ml
  template:
    metadata:
      name: ml-deploy
      labels:
        tier: ml
    spec:
      containers:
      - name: ml-deploy
        image: suhwan11/test1:flaskv2 #위에서 도커라이징한 이미지 
        ports:
        - containerPort: 5000 
2 . ml-svc.yaml
apiVersion: v1
kind: Service
metadata:
  name: ml-svc
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 5000
    nodePort: 31117
  selector:
    tier: ml
3 . ml-ing.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ml-ing
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: ml-svc
            port:
              number: 80
1 . nginx.conf
. . .
  location /mlapp {
      proxy_pass <ML Backend주소>;
      proxy_buffer_size   128k;
      proxy_buffers       4 256k;
      proxy_busy_buffers_size 256k;
    }
. . . 
. . . 
  "/mlapp":{
    target: "<ML Backend주소>/mlapp/",
    rewrite: (path)=>path.replace(/^\/mlapp/,""),
      },
. . . 
📒 기존의 Backend 코드에서 DB에 대한 Warning을 해결하기 위해 application.yaml파일에 open-in-view: false 를 추가하였는데 오히려 이것이 역효과가 나서 DB에 대한 쿼리 오류가 발생하였고, Frontend의 요청에서 에러가 발생했다.
📒 브라우저에서 새로 배포한 웹을 테스트할때 이전에 캐시된 웹 때문에 새로 배포한 웹에 문제가 없음에도 이전에 웹이 그대로 남아있어서 오류가 해결 안된것처럼 보일 수 있다.
-> Ctrl + Shift + R 을 누르면 새로 배포한 웹의 스크립트로 바꿔준다.