Docker & Kubernetes/쿠버네티스
kubernetes pod에서 특정 데이터만 추출하기(json 형식)
miracle21
2024. 12. 27. 13:45
반응형
예를 들어 kubernetes에서 돌고있는 pod의 특정 정보를 뽑아내야 한다고 하자.
추출할 정보 예시:
1. deployment로 배포한 pod의 deployment 이름
2. 배포한 pod의 개수(replica)
3. 컨테이너 각각의 이름, 리소스
kubectl get deployments -o json | jq -c '
.items[] |
{
name: .metadata.name,
newReplicaSet: .status.replicas,
containers: [
.spec.template.spec.containers[] |
{name, resources: .resources}
]
}
'
필요한 필드값을 명시하면 된다.
결괴 예시:
web deployment로 만들어진 pod는 6개, pod 안의 컨테이너는 각각 nginx와 web-service 라는 이미지로 만들어졌으며 리소스는 다음과 같다.
was deployment로 만들어진 pod는 2개, pod 안의 컨테이너는 각각 tomcat과 was-service 라는 이미지로 만들어졌으며 리소스는 다음과 같다.
{"name":"web","newReplicaSet":6,"containers":[{"name":"nginx","resources":{"limits":{"cpu":"100m","memory":"100Mi"},"requests":{"cpu":"100m","memory":"100Mi"}}},{"name":"web-server","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"100m","memory":"500Mi"}}}]}
{"name":"was","newReplicaSet":2,"containers":[{"name":"tomcat","resources":{"limits":{"cpu":"100m","memory":"100Mi"},"requests":{"cpu":"100m","memory":"100Mi"}}},{"name":"was-server","resources":{"limits":{"cpu":"1","memory":"1000Mi"},"requests":{"cpu":"100m","memory":"500Mi"}}}]}
이런식으로 필요한 정보만 추출할 수 있다.
만약 한 줄로 출력하기를 원하지 않는다면 -c 옵션을 제외하면 된다.
kubectl get deployments -o json | jq
반응형