728x90
반응형
출처
1) Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스
ConfigMap
1) 애플리케이션 컨테이너에서 사용할 수 있는 설정 데이터를 저장하고 관리하기 위한 Kubernetes 객체
2) ConfigMap을 사용하면 애플리케이션의 설정을 코드에서 분리하고, 환경에 따라 다르게 설정 가능
3) 분리된 세부정보를 외부로 노출시키지 않고 Storage에 저장해서 사용하는 방법
4) ConfigMap을 변경하더라도 Running상태의 Pod에 곧바로 적용되지 않음 > 재기동 필요
ConfigMap 장점
1) 설정 분리: 애플리케이션 코드와 설정을 분리함으로써 코드 변경 없이 설정을 수정
2) 유연성: ConfigMap을 사용하면 여러 환경(개발, 테스트, 운영 등)에서 동일한 애플리케이션을 실행할 수 있으며, 환경별로 다른 설정을 적용 가능
3) 형상 관리: ConfigMap은 YAML 또는 JSON 파일로 정의될 수 있으며, 소스 코드와 함께 버전 관리 시스템에 저장 가능
ConfigMap 스펙
1) 명령어를 사용해 생성된 ConfigMap의 스펙을 확인
$ kubectl get configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
namespace: default
data:
DB_URL: localhost
DB_USER: root
ConfigMap 생성방법
1) CMD
$ kubectl create configmap <configmap-name> --from-literal=<key>=<value>
예시>
$ kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
2) 파일을 통해 생성
$ kubectl create configmap <configmap-name> --from-file=<filename>
예시>
kubectl create configmap my-config --from-file=config-file.conf
3) yaml 을 사용해 생성
yaml 설정
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
key1: value1
key2: value2
yaml 설정으로 생성>
$ kubectl apply -f configmap.yaml
ConfigMap 사용 방법
1) 환경변수
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
envFrom: // 환경변수의 값을 동적으로 설정
- configMapRef:
name: my-config
2) Volumn
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes: // Volumn으로 마운트
- name: config-volume
configMap:
name: my-config
3) configmap의 key를 참조하여 그 key-value를 적용
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: KEY1
valueFrom: // configmap의 key를 참조하여 그 key-value를 적용
configMapKeyRef:
name: my-config
key: key1 // name으로는 configmap의 이름이 오게 되고, 그 아래 참조하고 싶은 configmap의 key 작성
728x90
반응형
'클라우드 > 쿠버네티스' 카테고리의 다른 글
[클라우드/쿠버네티스] kubectl 명령어 정리 (0) | 2024.08.15 |
---|---|
[클라우드/쿠버네티스] 쿠버네티스 윈도우 설치 (0) | 2024.08.12 |
[클라우드/쿠버네티스] 쿠버네티스 배포 (0) | 2024.06.26 |
[클라우드/쿠버네티스] 쿠버네티스 아키텍처 (0) | 2024.06.22 |
[클라우드/쿠버네티스] Docker (0) | 2024.06.20 |
댓글