반응형
ConfigMap
컨테이너에 필요한 환경설정을 컨테이너와 분리해서 제공하는 기능.
ConfigMap 생성
kubectl create configmap <name> [--from-file=source] [--from-literal=key=value]
# 예
kubectl create configmap config-dev --from-literal=DB_URL=localhost
예제
1. 아래 변수를 가지는 config-dev라는 이름의 ConfigMap을 생성하시오.
2. 생성한 ConfigMap의 변수를 web-server라는 이름의 Nginx컨테이너에 할당하시오.
- DB_USER: myuser
- DB_PASS : mypass
풀이
1. ConfigMap 생성
kubectl create configmap config-dev --from-literal=DB_USER=myuser --from-literal=DB_PASS=mypass
kubectl describe configmap config-dev
2. nginx 파트 생성 yaml
apiVersion: v1
kind: Pod
metadata:
name: web-server
spec:
containers:
- image: nginx
name: web-server
env:
- name: DB_USER
valueFrom:
configMapKeyRef:
name: config-dev
key: DB_USER
- name: DB_PASS
valueFrom:
configMapKeyRef:
name: config-dev
key: DB_PASS
반응형
Secret
ConfigMap : 컨테이너 구성 정보를 한 곳에 모아서 관리
Secret : 컨테이너가 사용하는 password, auth, ssh key와 같은 중요한 정보를 저장하고 민감한 구성정보를 base64로 인코딩해서 한 곳에 모아서 관리
kubectl create secret generic <name> [--from-file=source] [--from-literal=key=value]
# 예
kubectl create secret generic config-dev --from-literal=DB_PASS=mypass
- 생성 예
kubectl create secret generic db-user-pass \
--from-literal=username=admin \
--from-literal=password='S!B\*d$zDsb='
kubectl describe secret db-user-pass
- 아래와 같이 text가 보이지 않음
Name: db-user-pass
Namespace: default
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
password: 12 bytes
username: 5 bytes
- 실제로 아래와 같이 Base64로 인코딩된 값으로 저장된다 (암호화 된것 아님)
{"password":"UyFCXCpkJHpEc2I9","username":"YWRtaW4="}
생성한 Secret사용하기
- 파드 생성 yaml
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mypod
image: nginx
volumeMounts:
- name: foo
mountPath: "/secret"
volumes:
- name: foo
secret:
secretName: db-user-pass
끝.
Thank you!
반응형
'Tools > Kubernetes' 카테고리의 다른 글
[CKA 도전 시리즈] 11. Network Policy (0) | 2023.02.13 |
---|---|
[CKA 도전 시리즈] 10. Service ClusterIP (0) | 2023.02.07 |
[CKA 도전 시리즈] 8. Node 관리 / Pod Scheduling (0) | 2023.01.22 |
[CKA 도전 시리즈] 7. Deployment (0) | 2023.01.19 |
[CKA 도전 시리즈] 6. Pod (0) | 2023.01.17 |