Toby's Study Blog
article thumbnail
Published 2023. 8. 10. 16:41
ConfigMap, Secret kubernetes

두 오브젝트를 사용해야 하는 상황

개발환경에 A라는 서비스가 있고

이 서비스에는 일반접근과 보안접근을 지원하고 있다. 개발 환경에서는 보안접근을 해제할 수 있는 옵션이 있다.

보안접근을 한다면 접근 유저와 키를 세팅할 수도 있다.

사용환경으로 배포를 해야 한다면

다시 보안접속으로 설정을 해야하고

유저와 키값도 바꿔주어야 한다.

이 값들은 컨테이너 안에 있는 서비스 이미지에 들어있는 값이여서

이 내용을 바꾼다는 건

개발환경과 사용환경의 컨테이너 이미지를 각각 관리해야 겠다는 의미이다.

보통 환경에 따라 변하는 값들은 외부에서 결정을 할 수 있게 한다.

그걸 도와주기 위한게 이 두 오브젝트이다.

내가 분리해야되는 일반적인 상수들을 모아 ConfigMap을 만들고

Key와 같이 보안적인 관리가 필요한 것을 모아 Secret을 만든다.

Pod생성 시 두 오브젝트를 연결할 수 있는데 연결하면 컨테이너의 환경변수에

두 오브젝트 데이터가 들어가고 A 서비스 입장에서는 이 환경변수 값을 읽어 로직을 처리하면 된다.

 

1.Env(Literal) 데이터로 상수를 넣음

ConfigMap : 키와 벨류로 구성 필요한 상수를 정의를 해 놓으면

파드를 생성할때 ConfigMap을 가져와 컨테이너 안의 환경변수에

세팅이 가능 (Secret도 마찬가지이나 Value를 넣을때 Base64로 인코딩

파드로 주입될때 자동으로 디코딩 )

2.Env(File) 데이터로 파일을 넣음

file을 통째로 ConfigMap에 담을 수 있다.

파일 이름 : Key

파일 내용 : Value

파드의 환경변수에 넣을 떄 그대로 넣으면 Key가 파일이름이 되어 이상하니

Key를 새로 정의해서 넣음

ConfigMap의 내용 변경 시 data가 변해도 Pod의 환경변수 값에는 영향이 없다.

Pod가 죽어 재생성 되어야지만 변경된 값을 다시 받아와 수정이 가능하다.

3.Volume Mount(File) 파일을 넣을때 환경변수로 세팅x ,볼륨을 마운트 해서 사용

File 을 ConfigMap 에 담는법 까지는 동일 파드를 만들때 컨테이너 안에

Mount path를 정의하고 path안에 파일을 마운팅 할 수 있다.

ConfigMap의 내용 변경 시 data가 변하ㅏ면 Pod에 마운팅 된 내용도

변하게 된다.

'kubernetes' 카테고리의 다른 글

DemonSet, Job, CronJob  (0) 2023.08.10
Deployment  (0) 2023.08.10
Pod-Lifecycle  (0) 2023.08.10
Namespace, ResourceQuota, LimitRange  (0) 2023.08.10
Service  (0) 2023.08.10
profile

Toby's Study Blog

@Toby12

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그