분류 전체보기 766

helmfile - 여러 helm 차트를 한번에 관리하는 도구

https://youtube.com/shorts/CdenN_lGci8 helmfile이란?여러 Helm 차트를 한 번에 관리하고 릴리즈(배포)하는 도구입니다. helmfile 장점helm차트 2개를 릴리즈하려면 어떻게 해야할까요? 일일이 helm 릴리즈를 해야 합니다.helm upgrade --install chart1 {릴리즈 이름}helm upgrade --install chart2 {릴리즈 이름} helmfile을 사용하면 helm 차트를 일일이 릴리즈안해도 됩니다. 릴리즈할 helm chart를 helmfile에 정의하고 helmfile apply명령어를 실행하면 한번에 helm 차트가 릴리즈됩니다. 삭제하고 싶으면 helm destroy를 하면 됩니다. 언제 helmfile을 사용하면 좋을까?..

Docker로 MySQL 컨테이너 실행 및 Sakila 샘플 데이터 불러오는 방법

https://youtube.com/shorts/ljerZDAqDJA 개요이 글은 mysql 도커 컨테이너를 실행할때 sakila 데이터 샘플을 같이 불러오는 방법을 설명합니다. 설치 방법예제 링크: https://github.com/choisungwook/portfolio/tree/master/common/mysql_sakila_sample mysql 도커 컨테이너는 제일 처음 실행될 때 /docker-entrypoint-initdb.d 디렉터리 경로에 있는 sql를 모두 실행합니다. 이 원리를 사용하여 sakila 데이터를 생성하는 sql파일을 /docker-entrypoint-initdb.d 경로에 마운트해주면 됩니다.docker-compose.yml파일 예입니다. volumes로 initdb디렉터..

mTLS 프로토콜과 패킷 분석

mTLS는 무엇일까?mTLS는 상호(mutual)와 TLS(Transport Layer Security)가 합쳐진 개념으로, 서버와 클라이언트가 서로 신원을 확인하는 프로토콜입니다. TLS는 서버만 신원을 확인하는데 mTLS는 클라이언트와 서버 모두 신원을 확인합니다. 서버가 클라이언트 신원을 확인하기 때문에 서버가 허용한 클라이언트만 요청을 수락합니다.mTLS는 언제 사용할까?서버가 클라이언트 신원 확인이 필요할 때 사용합니다. 예를 들어 public으로 공개된 API를 특정 기업만 통신해야하는 상황, 즉 B2B통신할때 mTLS를 사용합니다. 우리나라 사용 사례는 금융권 마이데이터에서 사용하는 것 같습니다. 저는 B2B통신을 위해 mTLS를 공부하게되었습니다. mTLS 분석mTLS는 TLS프로토콜에서 ..

curl에서 hosts 파일 변경 없이 테스트하는 방법

안녕하세요. 이 글은 curl로 프록시를 테스트할 때, hosts파일을 변경하지 않고 host를 수정하는 방법을 소개합니다. 1.  요약7계층 프록시(예: nginx)에서는 `-H "Host: example.com"` 옵션을 사용하여 HTTP 헤더의 Host 값을 변경4계층 프록시(예: TCP 기반)에서는 `--resolve 'host:IP:port'` 옵션을 사용하여 특정 도메인의 DNS 해석을 직접 지정 2.  배경지식프록시는 Virtual Host 개념을 사용하여 요청을 구분하고 라우팅합니다. Virtual Host는 하나의 서버에서 여러 도메인(호스트)의 요청을 처리할 수 있도록 하는 기술입니다. 예를 들어, nginx에서 Virtual Host를 어떻게 활용하는지 살펴보겠습니다. 하나의 서버(I..

TCP라더니 HTTPS?! 예상치 못한 디버깅 여정(feat, openssl TLS인증서 추출방법)

25년 1월에 경험했던 재밌는 디버깅 과정을 공유드립니다. 1.   배경설날전 꼭 디버깅을 했어야 했던 상황이었습니다. 애플리케이션을 호출해야 했었는데 가이드에서는 tcp프로토콜을 사용하라고 되어 있었습니다. 하지만 가이드대로 동작하지 않았습니다. 담당자는 휴가 였습니다. 그리고 애플리케이션 소스코드, 메트릭, 로그는 권한이 없어 못보는 상황이었습니다. 시간이 많이 없었기 때문에 http 또는 https프로토콜을 사용하여 디버깅을 시작했습니다. http, https모두 안되었지만 https에서는 TLS 핸드쉐이킹 과정에서 서버 인증서 검증에러가 났습니다. 그래서 인증서 검사 무시 옵션을 추가했더니 https통신이 되었습니다. curl에서는 -k옵션이 인증서 무시입니다.curl -k {엔드포인트} 애플리케..

쿠버네티스 node not ready이면 어떤 일이 일어날까?

1.  개요이 글은 쿠버네티스 node가 not ready일 때, 내부적으로 어떤 동작을 하는지 설명합니다. 2.  요약not ready인 node에 pod가 스케쥴링되지 않도록 taint를 설정not ready 상태가 5분이 지나면 pod를 eviction 3.  node가 not ready가 되면3.1.  node taint 업데이트쿠버네티스는 not ready가 된 node에 pod가 스케쥴링 되지 않도록, node에 taint를 설정합니다. taint는 node.kubernetes.io/unreachable:NoExecute와 node.kubernetes.io/unreachable:NoSchedule를 설정합니다.kubectl describe node {not ready node} | grep..