cleanUrl: /k8s/access-metadata-of-pods
share: true
다루는 내용
- 컨테이너의 정보를 전달하기 위해 Downward API 사용
- k8s 의 REST API 살펴보기
- 인증과 서버 검증을 kubectl proxy 에 맡기기
- 컨테이너 내에서 API 서버에 접근하기
- 에배서더 컨테이너 패터의 이해
- k8s clinet lib 사용
때로, application 이 자신의 상세 정보를 포함해 실행 중인 환경 관련 정보, cluster 내의 다른 component에 관한 정보가 필요할 수 있다.
이러한 정보를 얻는 방법과 이런 resource 를 생성하거나 수정하는 방법을 다룬다.
Downward API 로 meta data 전달 (Passing metadata through the Downward API)
- config map, secret
- 이는 사용자가 데이터를 직접 설정한 경우, 혹은 미리 알고 있는 데이터에 적합한 방법이다.
- Downward API
- pod IP, 호스트 노드 이름 또는 pod 자체의 이름과 같이 실행 시점까지 알려지지 않은 데이터
- pod 의 label 이나 annotation 과 같이 어딘가에 이미 설정된 데이터는 다르다
Downward API 는 app이 호출해서 데이터를 가져오는 REST API 와는 다르다
Downward API 는 환경변수 또는 파일로 pod 의 meta data 를 노출한다.
위 그림과 같이 환경변수 또는 file 에 pod 의 spec 또는 상태값이 채워지게 만든다
사용 가능한 meta data 이해
파드 자체의 meta data 를 해당 파드 내에서 실행중인 process 에 노출시킬 수 있다.