본문 바로가기

프로젝트 일지32

PV - PVC를 사용하면서 주의할 점 - 데이터가 남아있는 경우 상황: DB Pod에서 DB 스키마 초기화가 되지 않는다MySQL에 특정 데이터베이스, 테이블을 찾을 수 없다는 에러가 계속 나고 있었다 (sampleapp.message does not exists). 나는 분명 message에 대한 schema.sql을 입력했고, 다른 DB를 확인해보아도 message 테이블 생성에 대한 스크립트가 입력되었음을 확인했다.  원인: PV에 대한 이해도 부족DB Pod에 접속하여 확인했더니 생판 다른 테이블이 생성되어 있는 것을 확인했다. 그것도 내가 옛날에 실험을 위해 적어두었던. 이 로그를 확인해보니 번뜩 그런 생각이 들었다. 아 이거 PV에 데이터 남아있는 걸로 연결이 되었구나. 초기화 스크립트가 제대로 안 먹힌 거구나. (애플리케이션을 개발하고 테스트하는 과정 중.. 2024. 9. 5.
인프라 형상을 코드로 관리하기 (1) - ArgoCD 아래 과정을 겪으면서 nginx와 한참 싸우던 어느날, k8s 클러스터 위에 배포한 앱들에 https가 적용되지 않는 현상을 발견했다.https://kyumcoding.tistory.com/119 Nginx에서 뒷단의 서비스와 Https 통신하려 할 때 겪는 문제들nginx에서 라우팅하는 A서비스 도메인의 인증서로 B서비스와 통신하려 한다? 문제상황bows.co.kr이면 docker compose로 띄운 certbot과 volume을 통해 ssl 인증을 하고, bows.co.kr 도메인이 아니면 뒷단으로 httpkyumcoding.tistory.com 처음에는 너무 어이가 없었다. 분명 옛날 코드 그대로 해서 ingress를 만들었는데? certificate로 잘 만들었는데...? 심지어 certific.. 2024. 8. 30.
Nginx에서 뒷단의 서비스와 Https 통신하려 할 때 겪는 문제들 nginx에서 라우팅하는 A서비스 도메인의 인증서로 B서비스와 통신하려 한다? 문제상황bows.co.kr이면 docker compose로 띄운 certbot과 volume을 통해 ssl 인증을 하고, bows.co.kr 도메인이 아니면 뒷단으로 https 그대로 넘겨버려서 뒷단의 k8s의 cert-manager와 traefik이 알아서 ssl을 처리하도록 설정한다. 아래 아키텍쳐를 보면 조금 직관적으로 이해가 가능하다.  문제는 뒷단으로 넘겼을 때 브라우저가 예를 들어 k8s에 naver.com 도메인으로 띄운 앱과 ssl 인증을 하려고 할 때 cert-manager와 traefik이 가지고 있는 naver.com인증서가 아니라, nginx 설정 앞단의 bows.co.kr의 인증서를 가지고 인증을 하려 .. 2024. 8. 30.
Synology NAS NFS 기반 PV 생성하기 지금까지는 emptyDir을 바탕으로 DB의 데이터를 저장하고 있었다. 하지만 emptyDir은 파드의 라이프사이클과 똑같기 때문에 파드가 다시 뜨게 되면 기존에 저장되어 있는 데이터가 모두 날라가게 된다. 이를 방지하기 위해 emptyDir이 아니라 파드가 띄워진 노드의 파일시스템에 접근하는 hostPath나 외부에 데이터를 영구적으로 저장하는 PV 등을 이용한다. 띄워지는 서비스들의 데이터를 영구적으로 보관하기 위해서 PV를 선택했는데 이유는 아래와 같다.hostPath를 이용하지 않은 이유k8s 노드들을 띄운 물리적 서버는 컴퓨터 1대이고 저장용량이 그렇게 크지 않다(1T 이상이긴 하지만 k8s 노드용 vm외 다른 vm, 다른 프로그램들도 돌고 있으니)어떤 데이터를 노드에 저장한다는 것은 pod가 .. 2024. 8. 17.