본문 바로가기
융복합 프로젝트 PZONE

<PZONE 프로젝트> 7. Docker -> Kubernetes 배포환경 Migration하

by 앙팡공기팡 2023. 2. 21.

 

 

지난 글

 

 

 

EKS로 Kubernetes Cluster 생성 및 ECR repository 생성 및 push하기: https://cooookieeee.tistory.com/8

 

<PZONE 프로젝트> 6. EKS로 Kubernetes Cluster 생성 및 ECR repository 생성 및 push하기

지난 글 Docker-compose로 1차 배포 하기: https://cooookieeee.tistory.com/8 진행사항 Cluster 생성을 eksctl로 진행할 예정이며, Cluster 생성 및 Main Board 역할(kubectl)을 위해 EC2를 새로 대여하도록 한다. < EKS Cluster

cooookieeee.tistory.com

 

 

 

 

 

 

 

진행사항

 

 

 

본 작업은 EKS control plane instance에서 진행되었다.

 

 

1. nginx.conf 파일을 통해 configmap 작성한다.(이떄 reverse proxy pass는 후에 사용할 django svc 의 name:8000으로 지      정한다.) 

    

2.  kubectl create configmap CM_Name --from-file= FILE_PATH 명령어를 통해 cm에 등록한다.

 

3. nginx deployment.yaml 에 volumemount, volume 항목 추가하여 configmap의 정보를 pod 내 mount된 dir에 File로 가져      온다.

 

4. Front(nginx), Back(django) ,Model Tier의 SVC와 Deployment를 kubectl apply -f path 명령어를 통해 적용하는데 내용은 다음과 같다.

 

    -  front svc의 type은 loadbalancer로 지정 port-forward는 80:80으로 지정

    -  front deployment image는 nginx로 selector는 front svc와 동일시 한다.

    -  Back svc의 port-forward는 8000:8000으로 지정

    -  Back svc의 image는 ecr에 push했던 image name으로 지정 selector는 Back svc와 동일시한다.

    -  Model svc의 port-forward는 8000:8000으로 지정

    -  Model svc의 image는 ecr에 push했던 image name으로 지정 selector는 Model svc와 동일시한다.

 

 

 

 

결과

 

 

https://github.com/P-Z0NE/Cloud/tree/main/Deployment/yaml/main_deployment

 

 

model was ws pod이 모두 deploy된 모습
SVC도 모두 등록되었다.

 

문제점 및 개선점

 

1. Django -secret의 보안 처리가 떨어지는 문제

 

    - Secret-manager나 kubernetes secret을 사용할것

 

 

 

 

Ref

https://woonizzooni.tistory.com/entry/kubernetes-ConfigMap-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95-redisconf-nginxconf-os-environment-variables-%EB%93%B1

-nginx.conf 적용 방식

https://bcho.tistory.com/1267

https://kubernetes.io/ko/docs/concepts/configuration/configmap/

-configmap 사용법