1. ConfigMap 개요
* 외부 설정/데이터 (민감한 데이터들
, 환경변수 | 설정 파일 | 명령 옵션/인자 | rootca 인증서, ...)
[참고] Variable vs ConfigMap
Variable: pod 안에 있는것 , ConfigMap: 외부에 있어서 pod가 참조하는것
[참고] ConfigMap vs Secret
2. ConfigMap 정의
1) CMD 사용
# kubectl create cm mycm \\
--from-literal=KEY1=VALUE1 \\
// 파일=파일내용 키쌍
--from-file=httpd.conf \\
// 지정키값=파일내용 키쌍
--from-file webConfig=nginx.conf \\
// 디렉토리 하위의 모든 파일의 내용
--from-file=./config/
2) YAML 사용
# cat << EOF | kubectl apply -f -
kind: ConfigMap
apiVersion: v1
metadata:
name: mycm
data:
KEY: VALUE
httpd.conf: |
...
webConfig: |
$(cat nginx.conf)
...
subfile: |
$(cat ./config/subfile)
...
EOF
3. ConfigMap 사용
--------------------------------------------
containers:
- name: myweb
image: nginx
env:
- name: INTERVAL (변수 이름, key)
value: 2 (변수 값 , value)
--------------------------------------------
1) [일부 참조](<https://www.notion.so/10-ConfigMap-27f1400eefa580a8b8d4fb38b9e75369>) - configMapKeyRef
--------------------------------------------
containers:
- name: myweb
image: nginx
env:
- name: INTERVAL (변수 이름, key)
valueFrom:
- configMapKeyRef:
name: myconfigmap
key: INTERVAL
--------------------------------------------
2) [전체 참조](<https://www.notion.so/10-ConfigMap-27f1400eefa580a8b8d4fb38b9e75369>) - configMapRef
--------------------------------------------
containers:
- name: myweb
image: nginx
envFrom:
- configMapRef:
name: myconfigmap
--------------------------------------------
3) [볼륨 마운트](<https://www.notion.so/10-ConfigMap-27f1400eefa580a8b8d4fb38b9e75369>)
--------------------------------------------
containers:
- name: myweb
image: nginx
volumeMounts:
- name: configmap-volume
mountPath: [/usr/share/nginx/html/cm](<https://www.notion.so/10-ConfigMap-27f1400eefa580a8b8d4fb38b9e75369>)
volumes:
- name: configmap-volume
configMap:
name: myconfigmap
--------------------------------------------
수업 자료