Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- minikube
- mysql 튜닝
- Spring
- PETERICA
- kotlin coroutine
- aws
- 기록으로 실력을 쌓자
- Java
- AWS EKS
- APM
- kotlin
- IntelliJ
- AI
- 티스토리챌린지
- Elasticsearch
- 코틀린 코루틴의 정석
- 오블완
- Linux
- Kubernetes
- MySQL
- Pinpoint
- 정보처리기사 실기 기출문제
- kotlin querydsl
- CKA
- CKA 기출문제
- 정보처리기사실기 기출문제
- 공부
- kotlin spring
- CloudWatch
- 정보처리기사 실기
Archives
- Today
- Total
피터의 개발이야기
[kubernetes] JSONPath 사용법 본문
반응형
ㅁ 들어가는 말
ㅇ kubernetes의 오브젝트들을 조회하고 그 결과를 JSON 형태로 받을 수 있다.
ㅇ JSONPath를 이용하여 원하는 결과물로 가공할 수 있다.
ㅇ kubernetes 자격 시험은 CKA를 공부하면서 사용법을 남겨보았다.
ㅁ 관련 글
ㅇ [shell] JSON 깔끔히 볼 수 있는 jq 명령어
ㅁ JSONPath 표현식
# 기본 json 출력
$ kubectl get nodes -o json
# json 최상위 객체
$ kubectl get pods -o=jsonpath='{@}'
{"apiVersion":"v1","items":[],"kind":"List","metadata":{"resourceVersion":""}}
# list의 첫번째
$ kubectl get pods -o=jsonpath='{.items[0]}'
{"apiVersion":"v1","kind":"Pod", ...... "startTime":"2024-01-27T11:32:44Z"}}
# name만 추출
$ kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
nginx
# name과 namespace 추출
$ kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'metadata.namespace']}"
nginx default
# 출력 데이터 리폼: 탭키 추가
$ kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'
nginx 2024-01-27T11:32:44Z
ㅁ JSON PATH query
$ kubectl config view --kubeconfig=my-kube-config -o jsonpath="{.contexts[?(@.context.user=='aws-user')].name}"
aws-user@kubernetes-on-aws
ㅁ node의 osImage 정보가져오기
# 개괄적 object 찾기 - jq
$ k get no -o json | jq .items[0].status.nodeInfo
{
"architecture": "amd64",
"bootID": "87af5391-da30-41b3-864a-54bf31866700",
"containerRuntimeVersion": "containerd://1.6.6",
"kernelVersion": "5.4.0-1106-gcp",
"kubeProxyVersion": "v1.27.0",
"kubeletVersion": "v1.27.0",
"machineID": "73d7539cb95c4ef09a8ddd274b5251bc",
"operatingSystem": "linux",
"osImage": "Ubuntu 20.04.6 LTS",
"systemUUID": "bfd9a690-6d7f-6100-518e-d1a252898ed3"
}
# jq는 array 형태를 가져오기 어렵다. '*'가 안먹음.
$ k get no -o json | jq .items[0].status.nodeInfo.osImage
"Ubuntu 20.04.6 LTS"
#JSONPATH
$ kubectl get nodes -o jsonpath='{.items[*].status.nodeInfo.osImage}'
Ubuntu 20.04.6 LTS Ubuntu 20.04.5 LTS
ㅁ kubeconfig(yaml) to users.name 추출
$ k config view --kubeconfig /root/my-kube-config -o=jsonpath='{.users[*].name}'
aws-user dev-user test-user
ㅁ Sort by
ㅇ pv 정보 중에서 storage 용량에 따가 정렬할 수 있다.
$ kubectl get pv --sort-by=.spec.capacity.storage
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-log-4 40Mi RWX Retain Available 33m
pv-log-1 100Mi RWX Retain Available 33m
pv-log-2 200Mi RWX Retain Available 33m
pv-log-3 300Mi RWX Retain Available 33m
ㅁ Sort by, custom-columns
$ kubectl get pv --sort-by=.spec.capacity.storage -o=custom-columns=NAME:.metadata.name,CAPACITY:.spec.capacity.storage
NAME CAPACITY
pv-log-4 40Mi
pv-log-1 100Mi
pv-log-2 200Mi
pv-log-3 300Mi
ㅁ 시험 샘플들
$ kubectl get nodes -o json > /opt/outputs/nodes.json
$ kubectl get node node01 -o json > /opt/outputs/node01.json
$ kubectl get nodes -o=jsonpath='{.items[*].metadata.name}' > /opt/outputs/node_names.txt
$ kubectl get nodes -o jsonpath='{.items[*].status.nodeInfo.osImage}' > /opt/outputs/nodes_os.txt
$ kubectl config view --kubeconfig=my-kube-config -o jsonpath="{.users[*].name}" > /opt/outputs/users.txt
$ kubectl get pv --sort-by=.spec.capacity.storage > /opt/outputs/storage-capacity-sorted.txt
$ kubectl get pv --sort-by=.spec.capacity.storage -o=custom-columns=NAME:.metadata.name,CAPACITY:.spec.capacity.storage > /opt/outputs/pv-and-capacity-sorted.txt
$ kubectl config view --kubeconfig=my-kube-config -o jsonpath="{.contexts[?(@.context.user=='aws-user')].name}" > /opt/outputs/aws-context-name
반응형
'Kubernetes > CKA&CKAD' 카테고리의 다른 글
[CKA] Udemy 실습문제풀이 - Trouble shooting (0) | 2024.01.28 |
---|---|
[CKA] Udemy 실습문제풀이 - Networking2 (0) | 2024.01.28 |
[CKA] Udemy 실습문제풀이 - Networking (0) | 2024.01.27 |
[CKA] Udemy 실습문제풀이 - Storage (0) | 2024.01.27 |
[CKA] Udemy 실습문제풀이 - Security (0) | 2024.01.25 |
Comments