STUDY/Data Engineering

19. CKA udemy 강의 정리 - Section 14 [OtherTopics]

wonpick 2023. 1. 31. 00:49

JSON Path란

JSONPath는 JSON 포맷의 데이터 구조를 손쉽게 처리할 수 있도록 고안된 표현식이다.

쿠버네티스 리소스를 조회하려고 할때 원하고자 하는 형태로 컨솔창에 출력하고 싶을 경우 사용할 수 있다.

JSON Path 

Function Description Example Result
text 일반 텍스트 kind is {.kind} kind is List
@ 현재 오브젝트 {@} 입력과 동일
. or [] 자식 오퍼레이터 {.kind}, {['kind']} or {['name\.type']} List
.. 재귀 하향(recursive descent) {..name} 127.0.0.1 127.0.0.2 myself e2e
* 와일드 카드. 모든 오브젝트 가져오기 {.items[*].metadata.name} [127.0.0.1 127.0.0.2]
[start:end:step] 아래 첨자 오퍼레이터 {.users[0].name} myself
[,] 조합 오퍼레이터 {.items[*]['metadata.name', 'status.capacity']} 127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]
?() 필터 {.users[?(@.name=="e2e")].user.password} secret
range, end 반복 목록 {range .items[*]}[{.metadata.name}, {.status.capacity}] {end} [127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]
'' 해석된 문자열 인용 {range .items[*]}{.metadata.name}{'\t'}{end} 127.0.0.1 127.0.0.2
#응답을 JSON으로 변환 (기본 문법 : kubectl get <리소스> -o json)
kubectl get pods -o json
# 응답 내용 ~(기본 문법 : kubectl get <리소스> -o jsonpath='{표현식}')
# 각 파드들을 구성한 이미지 정보만 조회
kubectl get pods -o=jsonpath='{.items[0].spec.container[0].image}'

 


1. https://seongjin.me/how-to-use-jsonpath-in-kubernetes/

2. https://espossible.tistory.com/13