🧭 Kubernetes | January 13, 2021
ConfigMap은 설정, 환경 변수들을 담는 객체이다.
Pod
을 생성할 때 이를 넣어줄 수 있다.
예를 들어 개발/운영에 따라 환경 변수 값이 다른 경우, ConfigMap을 활용할 수 있다.
문자(Literal)
Key : Value
형태로 .yaml - data
파일 내에 정의하고 Object
안에서 ConfigMap
오브젝트를 참조한다.Env (File)
ConfigMap
에 담는다. 이때 Key
의 이름은 파일의 이름, Value
는 파일 안의 내용이다.$ kubectl create configmap 컨피그맵이름 --from-file=파일의 경로&파일이름
Volume Mount(File)
ConfigMap
)으로 사용할 파일 자체를 마운팅 해(path 지정이 필요함), 사용하고자 하는 Object
들이 해당 경로/파일을 참조한다.
Env (File)
,Volume Mount(File)
두개의 큰 차이점은 Volume Mount(File)는 마운트로 원본(ConfigMap)과 연결되기 때문에 변경 사항이 발생했을 때, 해당 ConfigMap을 참조하고 있는Object
들의 설정 값들도 변경이 되지만, Env (File)는 참조하고 있는Object
를 재실행 하기 전까지 변경이 되지 않는다.
ConfigMap
은 일반적인 환경설정 변수를 담는다면, Secret
은 보안이 중요한 설정 변수들을 담는 오브젝트이다.
메모리에 저장되기 때문에 꼭 필요한 정보만 담도록 해야한다.
키/값 형태이지만 값은 base64 로 인코딩해야한다. 이후 쿠버네티스가 컨테이너 내에서 자동으로 decoding
을 해준다.
Env (File)
$ kubectl create secret generic 시크릿이름 --from-file=파일의 경로&파일이름
동작 방식의 형태는 위의 ConfigMap과 동일하다.