본문 바로가기

인프런 복습 - 쿠버네티스 어나더 클래스

[Sprint1] Configmap, Secret

개념

글이 많아서 복잡하긴 한데.. 간단히 요약하면

configmap은 인프라 환경 정보+Secret의 파일 경로를 환경변수로 전달한다.

Pod에서는 volumes을 통해 Secret과 연결하고, mountPath를 통해 경로를 만들어 최종적으로 secret의 yaml 파일을 생성한다.

Secret에서는 yaml 파일을 만든다. 

 

 

강사님 자료의 일부

이 application 파일들에는 각 인프라 환경마다 다른 DB 정보 등이 저장되어 있다. 

 

 

 


실습

1) 입력값 확인(Configmap, Secret)

- Dashbord에서 바로 확인 

▲ 실제 값은 base64로 인코딩된 값이지만, 대시보드에서 복호화(decoding)해서 보여준다 

 

- 콘솔에서 확인

▲ jsonpath='{.data.postgresql-info\.yaml}' : postgresql-info가 Key인 Value값만 출력

 

- Bash에서 확인( Pod > Bash(exec) > env 입력)

 

 

# Secret 파일 경로
/usr/src/myapp/datasource/postgresql-info.yaml

▲ 값이 복호화된 채로 들어가있음 

 

# JVM(java virtual machine)에서 실행중인 프로세스를 확인하는 명령어
# -v : 옵션도 같이 출력 
jps -v

▲ App이 실행되면서 이 값들이 들어간다. 

 

# kubectl로 출력해보기
kubectl exec -n <namespace-name> -it <pod-name> -- <command>
# command에 env, cat+파일명, jps -v를 넣어보면 된다

 

 

 

 

 

 

 

 

2) API 날리기

 

 

 

 

 

 

 

 

3) Configmap 수정해보기

- 대시보드에서 수정

application_role=GET

- 콘솔에서 수정 

export application_role=GET

▲ Configmap의 환경변수들은 Pod가 처음 만들어질 때 한번만 주입되기 때문에, 수정해도 변화가 없음! 

 

 

 

 

 

 

 

 

 

 

4) Secret 수정해보기

▲ Secret은 volumeMount로 연결했기 때문에 수정이 됨 

 

 

 


 

 

 

Secret의 Type 별로 다른 여러 기능을 사용할 수 있다!