🧭 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과 동일하다.