ConfigMap, Secret 실습
1. Env(Literal)
ConfigMap YAML
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-dev
data:
SSH: 'false'
User: dev
- key, value는 모두 string이니까
'
을 넣어야 함
Secret YAML
apiVersion: v1
kind: Secret
metadata:
name: sec-dev
data:
Key: MTIzNA==
- key에 들어갈 value는 base64 인코딩해야 함
Pod YAML
apiVersion: v1
kind: Pod
metadata:
name: pod-1
spec:
containers:
- name: container
image: kubetm/init
envFrom:
- configMapRef:
name: cm-dev
- secretRef:
name: sec-dev
- 환경변수로 cm-dev, sec-dev 설정
실습 과정
- ConfigMap, Secret, Pod 생성
- pod-1 shell에서
env
확인 --> key 값 나오넹
2. Env(File)
ConfigMap 생성 명령어
echo "Content" >> file-c.txt
kubectl create configmap cm-file --from-file=./file-c.txt
Secret 생성 명령어
echo "Content" >> file-s.txt
kubectl create secret generic sec-file --from-file=./file-s.txt
- create secret 할 때, 파일에 있는 내용을 base64 인코딩을 함
Pod YAML
apiVersion: v1
kind: Pod
metadata:
name: pod-file
spec:
containers:
- name: container
image: kubetm/init
env:
- name: file-c
valueFrom:
configMapKeyRef:
name: cm-file
key: file-c.txt
- name: file-s
valueFrom:
secretKeyRef:
name: sec-file
key: file-s.txt
- 환경변수에서 key를 파일 이름으로 매핑시킴
실습 과정
- Master에 들어가서 위에 명령어 입력으로 ConfigMap, Secret 생성
- 대시보드에서 컨피그 맵, 시크릿에 생성됐는지 확인 --> 생겼당, 키는 파일이름, 내용은 Content
- Pod 생성 후 컨테이너 shell에서 env 확인 --> 생겼당
- file-s=Content 싱기
3. Volume Mount(File)
Pod YAML
apiVersion: v1
kind: Pod
metadata:
name: pod-mount
spec:
containers:
- name: container
image: kubetm/init
volumeMounts:
- name: file-volume
mountPath: /mount
volumes:
- name: file-volume
configMap:
name: cm-file
실습 과정
- Pod 생성 --> shell에서 다음 명령어 수행
cd /mount
ls
cat *
요러캐 나옴
- 컨피그 맵에서 file-c.txt의 value를 Content --> Content123으로 수정
- pod-file(Env file)의 env와 pod-mount의 mount1 디렉토리의 파일 내용 비교
pod-file(삭제 전)
- 이전 값 그대로 Content
pod-file(삭제 후 재생성)
- 삭제하고 재생성하니 변함
pod-mount
- 파드를 삭제 후 재생성하지도 않았는데 ConfigMap 변한게 그대로 반영 됨
출처
인프런 - 대세는 쿠버네티스
'네트워크 > k8s' 카테고리의 다른 글
[k8s] 11. Namespace, ResourceQuota, LimitRange - 실습 (0) | 2021.02.11 |
---|---|
[k8s] 10. Namespace, ResourceQuota, LimitRange (0) | 2021.02.10 |
[k8s] 8. ConfigMap, Secret - Env, Mount (0) | 2021.02.07 |
[k8s] 7. Volume - 실습 (0) | 2021.02.07 |
[k8s] 6. Volume - emptyDir, hostPath, PV/PVC (0) | 2021.02.04 |