1. ConfigMap
ConfigMap은 Kubernetes에서 애플리케이션의 설정 데이터를 외부화하여 관리할 수 있게 해주는 리소스입니다. 애플리케이션 코드와 구성을 분리함으로써, 배포 환경에 따라 설정을 유연하게 조정할 수 있습니다.
주요 특징
- 환경 변수로 주입: 컨테이너 내부에서 환경 변수로 사용할 수 있습니다.
- 볼륨 마운트: 설정 파일처럼 파일 시스템에 마운트하여 애플리케이션이 참조하도록 구성할 수 있습니다.
- 재사용 가능: 여러 Pod에서 동일한 ConfigMap을 참조할 수 있습니다.
이미지 설명
첫 번째 이미지는 ConfigMap을 생성하고 Pod에서 이를 환경 변수로 사용하는 예시를 보여줍니다.
왼쪽은 ConfigMap 정의이며, special.how과 special.type이라는 키를 포함하고 있습니다.
오른쪽은 해당 ConfigMap을 사용하는 Pod 정의입니다. 두 개의 환경 변수 SPECIAL_LEVEL_KEY, SPECIAL_TYPE_KEY가 각각 ConfigMap의 키를 참조합니다.
2. Secret
Secret은 비밀번호, 토큰, 인증 키와 같은 민감한 정보를 안전하게 저장하고 사용할 수 있도록 해줍니다.
주요 특징
- Base64 인코딩으로 저장되어 기본적인 보안을 제공
- 환경 변수 또는 볼륨 형태로 파드에 주입 가능해 코드단의 민감 정보 노출을 피할 수 있음
- 유지보수 편의성: 설정 변경이나 회전을 쉽게 처리 가능 (YAML 파일로 관리)
- 마스터 노드의 etcd와 같은 안전한 데이터베이스에 저장됨
- 클러스터 전체에 공유 가
Secret은 보안이 중요한 운영 환경에서 필수적인 구성 요소로, 민감한 정보가 코드에 노출되지 않도록 도와줍니다.
3. Volumes와 Persistent Volume
Kubernetes에서는 컨테이너의 파일 시스템이 일시적이라는 문제를 해결하기 위해 다양한 형태의 Volume을 제공합니다.
3-1. 일반 Volume과 공유 Volume
아래 이미지는 Kubernetes Volume의 동작 방식 차이를 보여줍니다.
- 왼쪽은 단일 컨테이너 내부에서만 사용되는 tmpfs 형태의 일시적 파일 시스템입니다.
- 오른쪽은 두 개의 컨테이너가 /var/logs 디렉토리를 공유하는 예시로, Pod 내 공유 Volume을 사용하는 구조입니다.
이러한 Volume을 통해 컨테이너 간 데이터 공유가 가능해집니다.
3-2. Persistent Volume (PV)과 Persistent Volume Claim (PVC)
Persistent Volume은 파드의 생명주기와 무관하게 데이터를 유지할 수 있는 저장소입니다.
아래 이미지는 PV/PVC가 실제 클러스터에서 어떻게 작동하는지를 설명하고 있습니다.
- PVC (Persistent Volume Claim)는 사용자 또는 애플리케이션이 요청하는 스토리지
- PV (Persistent Volume)는 실제 물리적 또는 클라우드 기반 스토리지 리소스
- 파드는 PVC를 통해 PV에 접근하며, PV는 로컬 디스크, NFS 서버, GCP 디스크 등 다양한 백엔드를 사용 가능
- 중앙 텍스트에 나와 있듯이 "언제든지 PV를 쉽게 변경 가능"하다는 장점이 있음
사용 흐름
- 관리자가 PV를 정의
- 개발자가 PVC를 요청
- Kubernetes가 적절한 PV를 PVC에 바인딩
- 파드가 이 스토리지를 마운트하여 사용
'Infra' 카테고리의 다른 글
[CI/CD] CI/CD 파이프라인 이해 (1) | 2025.07.22 |
---|---|
[Kubernetes] Kubernetes 네트워크 서비스와 파드 연결 방식 (0) | 2025.07.15 |
[Kubernetes] Kubernetes Deployment 이해하기 (0) | 2025.07.15 |
[Kubernetes] Kubernetes란 무엇인가? (0) | 2025.07.15 |
[Kubernetes]Kubernetes 설치 및 설정 (rocky8 Linux 기준) (1) | 2025.07.09 |