A toolset for inspecting Kubernetes clusters.
k8s-tools provide a SQL interface for querying information about various Kubernetes resources, including:
- Containers
- DaemonSets
- Deployments
- HorizontalPodAutoscalers
- Nodes
- PersistentVolumes
- Pods
- Services
- StatefulSets
- SQL-based querying of Kubernetes resources
- Interactive TUI for database exploration
- Support for multiple output formats (JSON, Table, Vertical)
The internal database contains the following schemas:
k8s
: Main schema containing all Kubernetes resource tablesnodes
pods
deployments
- (etc...)
For detailed schema information, see DB Documentation
- Go 1.23 or later
- CGO enabled environment
- Kubernetes cluster access configured
Important
CGO_ENABLED=1 is required for DuckDB.
CGO_ENABLED=1 go install github.com/Hexta/k8s-tools/cmd/k8s-tools@latest
- Print nodes utilisation in zone eu-central-1a
k8s-tools node utilisation -l topology.kubernetes.io/zone=eu-central-1a
- Init DB.
k8s-tools db init
- Query data.
- Top10 CPU underutilized nodes
k8s-tools db query "select name, cpu_utilisation, labels['karpenter.sh/nodepool'] from k8s.nodes order by cpu_utilisation asc limit 10"
- Top10 CPU underutilized nodes
- Run SQL TUI.
k8s-tools db tui
- List tables
k8s-tools db query "select table_schema, table_name, table_type from information_schema.tables where table_schema='k8s' order by table_name""
Contributions are welcome! Please see our contributing guidelines.
This project is licensed under the Apache License 2.0.