kubectl sql
v0.2.11
kubectl-sql 是一個 kubectl 插件,它使用類似 SQL 的語言來查詢 Kubernetes 叢集管理器
使用 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/