ConfigMap, Secret
ConfigMap, Secret Overview
- 환경별로 다른 값들을 다룰 때 사용하는 오브젝트이다.
- ConfigMap: 환경별로 각자 다른 상수 정보를 저장해야 할 때 사용
- Secret: ConfigMap와 유사하지만, 보안적인 관리가 추가적으로 필요한 경우에 사용

Env (Literal)
- ConfigMap과 Secret은 모두 Key, Value 형태로 값을 저장한다.
다만 Secret의 Value에 저장할 때에는 반드시 Base64 인코딩 데이터를 넣어야 한다.
→ Pod로 Secret의 Value가 주입될 때에는 내부적으로 Base64 디코딩을 수행한다. - Secret은 ConfigMap과 달리 k8s DB가 아닌 노드의 메모리에 저장이 되어있어 보안에 강하다.
이로 인해 Secret을 많이 만들 경우, 노드 성능 저하에 영향을 끼치기도 한다.
→ 1MB 까지만 저장 가능

Env (File)
- 파일 자체를 ConfigMap이나 Secret으로 사용할 수 있다.
파일명(Key), 파일내용(Value) 으로 인식한다. - k8s 마스터 노드의 kubectl 명령어를 통해 적용할 수 있다.
Secret의 경우, 자동으로 파일 내용이 base64로 인코딩 된다.
→ 파일 내용이 base64 인코딩된 상태라면 이중으로 인코딩 되는 점을 유의해야 한다.

Volume Mount (File)
- ConfigMap이나 Secret 내용의 파일이 담긴 Volume을 Pod에 Mount 하는 방식이다.
- Env (File) 방식과 달리, Mount 된 상황이므로 파일을 수정하면 Pod에서 참조하고 있는 값도 함께 변한다.
→ Env (File) 방식은 Pod이 생성되는 시점에만 값을 주입하고, 이후부터는 수정이 불가해 Pod을 재생성해야 한다.

Reference : https://inf.run/yW34
'Tech > [Container] Kubernetes' 카테고리의 다른 글
| 쿠버네티스 컨트롤러 - ReplicaSet (0) | 2025.12.02 |
|---|---|
| 쿠버네티스 기본 오브젝트 - Namespace, ResourceQuota, LimitRange (0) | 2025.12.02 |
| AWS 환경에 Kubespray를 활용하여 Kubernetes Cluster 배포하기 (0) | 2025.05.21 |
| 쿠버네티스 기본 오브젝트 - Volume (0) | 2025.04.14 |
| 쿠버네티스 기본 오브젝트 - Service (0) | 2025.04.14 |