반응형
[Kubernetes] Kubernetes Configmap 설명과 실습
```
[k8s] 쿠버네티스 컨피그맵 설명과 실습
```
이번 글을 통해 배워갈 내용
- configmap 설명
- env 파일로 ConfigMap 생성
- 생성 시 값을 직접 입력하여 ConfigMap 생성
- VolumeMount로 사용
- 컨테이너의 환경 변수로 사용
1. configmap 설명
ConfigMap 은 Secret에 비해서 보안상 중요하지 않은 key value 값들을 저장하는 데 사용됩니다.
2. env 파일로 ConfigMap 생성
먼저 cm이 참조할 myenv.env 파일을 생성합니다
cat <<EOF > /myenv.env
planet="EARTH"
city="SEOUL"
EOF
cm을 생성합니다
k create configmap my-config --from-file=/myenv.env
아래와 같이 생성됩니다
apiVersion: v1
data:
myenv.env: |
planet="EARTH"
city="SEOUL"
kind: ConfigMap
metadata:
creationTimestamp: null
name: my-config
3. 생성 시 값을 직접 입력하여 ConfigMap 생성
아래와 같은 방법으로도 생성 가능합니다
kubectl create cm my-config02 --from-literal=type=animal --from-literal=age=31
아래와 같이 생성됩니다
apiVersion: v1
data:
age: "31"
type: animal
kind: ConfigMap
metadata:
creationTimestamp: null
name: my-config02
4.VolumeMount로 사용
2번 예제에서 생성한 cm my-config를 사용하겠습니다.
apiVersion: v1
data:
myenv.env: |
planet="EARTH"
city="SEOUL"
kind: ConfigMap
metadata:
creationTimestamp: null
name: my-config
pod 생성시에 my-config를 사용합니다
k run mypod01 --image=nginx --dry-run=client -o yaml
수정 전
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: mypod01
name: mypod01
spec:
containers:
- image: nginx
name: mypod01
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
수정 후
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: mypod01
name: mypod01
spec:
containers:
- image: nginx
name: mypod01
volumeMounts:
- name: config
mountPath: "/config"
readOnly: true
volumes:
- name: config
configMap:
name: my-config
items:
- key: "myenv.env"
path: "myenv.env"
restartPolicy: Always
status: {}
5. 컨테이너의 환경 변수로 사용
2번 예제에서 사용된 my-config02를 사용하겠습니다.
apiVersion: v1
data:
age: "31"
type: animal
kind: ConfigMap
metadata:
creationTimestamp: null
name: my-config02
동일하게 pod yaml를 생성합니다
k run mypod02 --image=nginx --dry-run=client -o yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: mypod02
name: mypod02
spec:
containers:
- image: nginx
name: mypod02
resources: {}
env:
- name: MY_ENV_VAL_AGE
valueFrom:
configMapKeyRef:
name: my-config02
key: age
- name: MY_ENV_VAL_TYPE
valueFrom:
configMapKeyRef:
name: my-config02
key: type
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
확인해 봅니다
kubectl exec mypod02 -- sh -c 'echo $MY_ENV_VAL_AGE'
kubectl exec mypod02 -- sh -c 'echo $MY_ENV_VAL_TYPE'
참조
https://kubernetes.io/docs/concepts/configuration/configmap/
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
반응형
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] Kubernetes etcd backup 과 restore 설명과 실습 (0) | 2024.10.09 |
---|---|
[Kubernetes] Kubernetes CRD 와 CR 설명과 실습 (1) | 2024.09.20 |
[Kubernetes] Kubernetes Taints,Toleration and affinity 설명과 실습 (0) | 2024.09.18 |
[Kubernetes] Kubernetes Volumes 설명과 실습 (1) | 2024.09.16 |
[Kubernetes] Kubernetes NetworkPolicy 설명과 실습 (0) | 2024.09.15 |