한 문장 요약 (엘리베이터 피치)
▎ "Vault Secrets Operator를 사용해서, Vault에 저장된 시크릿을 자동으로 Kubernetes Secret으로 동기화하고, Pod에 환경변수로 주입하는 구조입니다."
---
단계별 설명 (면접 답변용)
"크게 4단계로 동작합니다."
1단계: 시크릿 저장
▎ "시크릿은 Vault의 KV-v2 엔진에 환경/서비스별로 구조화해서 저장합니다. 예를 들어 secret/prod/myapp/config 경로에 DB 접속정보나 API 키를 넣습니다."
2단계: 동기화 선언
▎ "VaultStaticSecret이라는 CRD를 선언하면, VSO(Vault Secrets Operator)가 이걸 감시하다가 Vault에서 값을 가져와서 Kubernetes Secret으로 자동 생성합니다. 30초 주기로 동기화됩니다."
3단계: Pod 주입
▎ "Pod 스펙에서 envFrom: secretRef로 해당 K8s Secret을 참조하면, Vault의 KV key가 그대로 컨테이너 환경변수가 됩니다."
4단계: 자동 갱신
▎ "Reloader라는 컨트롤러가 Secret 변경을 감지해서 Pod를 자동 재시작합니다. 그래서 Vault에서 시크릿을 변경하면 무중단으로 반영됩니다."
---
예상 꼬리 질문과 답변
Q: "왜 Agent Injector 안 쓰고 VSO를 선택했나요?"
▎ "Agent Injector는 모든 Pod에 sidecar를 붙여야 해서 리소스 오버헤드가 큽니다. VSO는 중앙 컨트롤러 하나가 모든 시크릿을 관리하므로 리소스 효율적이고, 네이티브 K8s Secret으로 변환되니까 기존 envFrom 패턴을
▎ 그대로 쓸 수 있습니다."
Q: "CSI Driver 방식과 차이는?"
▎ "CSI는 시크릿을 파일로 마운트하는 방식이라 환경변수로 쓰려면 추가 작업이 필요합니다. VSO는 K8s Secret을 직접 생성하니까 envFrom으로 바로 환경변수 주입이 가능합니다."
Q: "Vault 인증은 어떻게 하나요?"
▎ "Kubernetes Auth Method을 사용합니다. VSO의 ServiceAccount 토큰으로 Vault에 인증하고, Vault는 AWS KMS로 auto-unseal 되어 재시작 시에도 수동 개입이 필요 없습니다."
Q: "이전에는 어떤 방식이었나요?"
▎ "AWS Secrets Manager + External Secrets Operator 조합이었는데, 멀티클라우드 확장성과 시크릿 중앙 관리를 위해 Vault로 마이그레이션했습니다."
Q: "시크릿이 변경되면 어떻게 되나요?"
▎ "VSO가 30초마다 Vault와 동기화해서 K8s Secret을 업데이트하고, Reloader가 변경을 감지해서 관련 Pod를 rolling restart 합니다. 애플리케이션 재배포 없이 시크릿 교체가 가능합니다."
'DevOps' 카테고리의 다른 글
| DevOps/SRE 관점에서 알아야 할 모니터링 개념 정리 (0) | 2026.06.11 |
|---|---|
| 멀티클라우드 리버스 프록시 아키텍처 검토 (1) | 2026.04.20 |
| 200ms latency- 실시간 개인화 시스템 아키텍처 Deep Dive (0) | 2026.02.26 |
| 왜 여러 회사에서 AKS는 불안정하고 EKS는 안정적으로 느껴졌을까 (0) | 2026.02.05 |
| kubernetes에서 Pod requests / limits Tunning (1) | 2025.12.30 |
댓글