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 ให้คุณเลือกทรัพยากร Kubernetes ตามค่าของช่องทรัพยากรอย่างน้อย 1 ช่อง โดยใช้ SQL ที่มนุษย์อ่านง่าย เช่น ภาษาคิวรี นอกจากนี้ยังสามารถค้นหาทรัพยากรที่เชื่อมต่อโดยใช้คำสั่ง 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
เพื่อสร้างการค้นหาที่ซับซ้อน (Illustrated jq toturial)
https://stedolan.github.io/jq/manual/#select(boolean_expression)
ตัวเลือกช่องให้คุณเลือกทรัพยากร Kubernetes ตามค่าของช่องทรัพยากรอย่างน้อย 1 ช่อง ต่อไปนี้คือตัวอย่างบางส่วนของแบบสอบถามตัวเลือกฟิลด์
https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors/