kubectl-sql هو مكون إضافي لـ kubectl يستخدم لغة تشبه لغة SQL للاستعلام عن مدير مجموعة Kubernetes
باستخدام مدير البرنامج المساعد krew للتثبيت:
kubectl krew install sql
kubectl sql --help
باستخدام فيدورا كوبر:
dnf copr enable yaacov/kubesql
dnf install kubectl-sql
من المصدر:
git clone [email protected]:yaacov/kubectl-sql.git
cd kubectl-sql
make
يتيح لك kubectl-sql تحديد موارد Kubernetes استنادًا إلى قيمة واحد أو أكثر من حقول الموارد، وذلك باستخدام لغة 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 | يامل |
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/