#docker #kubernetes #container #orchestrator #microservice #infrastructure-as-code #devops #ci #cd

제목[Q&A] 쿠버네티스에서 db를 연동하는 방법2019-12-12 15:47
작성자
첨부파일assignment2.zip (1.1KB)assignment4.zip (37.5KB)

도커 스웜 과제를 진행하면서 


https://docs.docker.com/compose/gettingstarted/


위 공식 홈페이지를 참고해서 진행을 했습니다.


저기서 참고한 것을 쿠버네티스로 전환하는 과정에서 발생한 문제가 있었는데요


db 연동이 제대로 되지 않는 것이었습니다.


도커 스웜에서는 manager 노드에 db를 키고, worker에 web을 띄워서 


매니저가 항상 먼저 실행된다는 점을 이용해 db를 실행 시킨후 web을 띄웠습니다.


그리고 app.py 코드에서도 그냥 연동이 가능했습니다.

하지만 쿠버네티스에서는 왜인지 제대로 작동하지 않았고 


검색을 한 결과 환경변수를 통해서 db를 적용시켜줘야한다는 것을 알았습니다.


mb-file.php?path=2019%2F12%2F12%2FF566_assignment4_qa.PNG
위 사진은 app.py를 쿠버네티스에 맞게 수정한 모습입니다.

바뀐 점은 환경변수를 쓰기 위해 import os를 해주고 db를 연결할 때 redis.Redis(host='redis')부분을 redis.Redis(host=os.getenv('REDIS_HOST')로 변경했습니다.

mb-file.php?path=2019%2F12%2F12%2FF568_assignment4_qa2.PNG
이후 docker-compose.yml을 deployment.yml으로 저장할 때 db부분은 그대로 두고, deployment.yml의 my-web에서 'env'항목을 추가해서 name과 value를 준 점입니다.

쿠버네티스에서는 같은 팟에 넣어두면 local호스트로 통신이 가능하기 때문에 value로 localhost를 주었습니다.


mb-file.php?path=2019%2F12%2F12%2FF569_Project%20Capture.PNG
 

마지막으로 쿠버네티스에서 실행한 스크린 샷입니다. 첨부파일로 docker에서 사용한 파일과 쿠버네티스에서 사용한 파일을 첨부하겠습니다.


도움이 되셨으면 합니다!!


#k8s# kubernetes# 쿠버네티스#도커# docker# 연동# 연결# db# deployment
댓글