kubectl sql
v0.2.11
kubectl-sql은 SQL과 같은 언어를 사용하여 Kubernetes 클러스터 관리자에 쿼리하는 kubectl 플러그인입니다.
krew 플러그인 관리자를 사용하여 설치:
kubectl krew install sql
kubectl sql --help
Fedora Copr 사용:
dnf copr enable yaacov/kubesql
dnf install kubectl-sql
출처:
git clone [email protected]:yaacov/kubectl-sql.git
cd kubectl-sql
make
kubectl-sql을 사용하면 쿼리 언어와 같이 사람이 읽을 수 있고 사용하기 쉬운 SQL을 사용하여 하나 이상의 리소스 필드 값을 기반으로 Kubernetes 리소스를 선택할 수 있습니다. join
명령을 사용하여 연결된 리소스를 찾는 것도 가능합니다.
더 많은 kubectl-sql 예제
# Get all pods from current namespace scope, that has a name starting with "virt-" and
# IP that ends with ".84"
kubectl-sql get pods where " name ~= '^virt-' and status.podIP ~= '[.]84$' "
AMESPACE NAME PHASE hostIP CREATION_TIME(RFC3339)
default virt-launcher-test-bdw2p-lcrwx Running 192.168.126.56 2020-02-12T14:14:01+02:00
...
# Get all persistant volume clames that are less then 20Gi, and output as json.
kubectl-sql -o json get pvc where " spec.resources.requests.storage < 20Gi "
...
# Display non running pods by nodes for all namespaces.
kubectl-sql join nodes,pods on
" nodes.status.addresses.1.address = pods.status.hostIP and not pods.phase ~= 'Running' " -A
...
# Filter replica sets with less ready-replicas then replicas"
kubectl-sql --all-namespaces get rs where " status.readyReplicas < status.replicas "
--출력 플래그 | 인쇄 형식 |
---|---|
테이블 | 테이블 |
이름 | 이름만 |
YAML | YAML |
JSON | JSON |
jq
가볍고 유연한 명령줄 JSON 프로세서입니다. kubectl 명령 출력을 jq
명령으로 파이프하여 복잡한 검색을 생성할 수 있습니다( jq toturial 설명 ).
https://stedolan.github.io/jq/manual/#select(boolean_expression)
필드 선택기를 사용하면 하나 이상의 리소스 필드 값을 기반으로 Kubernetes 리소스를 선택할 수 있습니다. 다음은 필드 선택기 쿼리의 몇 가지 예입니다.
https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/