Container with lots of network packages to test routing and connectivity inside your clusters.
6.0K
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
| š“ DonkeyX's Cluster Utils ā
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
//\\
(/oo\) .----.
(____) | K8s |
/||\ '----'
//||\\ š Debug Mode
^^ ^^ ^^
"Lets break some Shit!"
A modern, lightweight Docker container designed for Kubernetes cluster debugging and network troubleshooting. Built on Alpine Linux with a comprehensive toolkit for testing network routes, DNS resolution, database connections, and service mesh configurations.
Key Features:
donkeyx/cluster-utils:latest (DockerHub) or ghcr.io/donkeyx/cluster-utils:latest (GitHub)For immediate interactive shell access without deployment:
# Interactive shell (with explicit zsh entry)
docker run -it --rm --entrypoint=/bin/zsh donkeyx/cluster-utils:latest
# Alternative: Let auto-shell switching handle it (sh ā zsh automatically)
docker run -it --rm --entrypoint=/bin/sh donkeyx/cluster-utils:latest
# GitHub Container Registry alternative: ghcr.io/donkeyx/cluster-utils:latest
# Note: Replace 'docker' with 'podman' if using Podman instead
What you get:
--rm)Deploy as a Deployment (runs continuously, no timeouts):
# Deploy the cluster utilities as a persistent deployment
kubectl apply -f https://raw.githubusercontent.com/donkeyx/cluster-utils/master/k8s-cluster-utils.yml
# Check the deployment and service
kubectl get deployments,services -l app=cluster-utils
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cluster-utils 1/1 1 1 30s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/cluster-utils ClusterIP 10.96.45.123 <none> 8080/TCP 30s
Easy connection via service (no need to know pod name!):
# Connect using the service - simplest method:
kubectl exec -it service/cluster-utils -- sh
kubectl exec -it service/cluster-utils -- zsh
# Alternative: Connect via deployment:
kubectl exec -it deployment/cluster-utils -- sh
kubectl exec -it deployment/cluster-utils -- zsh
# You'll see the welcome screen:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®
| š“ DonkeyX's Cluster Utils ā
ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ
//\\
(/oo\) .----.
(____) | K8s |
/||\ '----'
//||\\ š Debug Mode
^^ ^^ ^^
"Braying at broken clusters!"
š Welcome to the Kubernetes Cluster Utilities! š
=====================================================
š¦ Available Tools:
š Network & DNS:
⢠dig, nslookup, host (bind-tools)
⢠nc (netcat-openbsd)
⢠curl, wget
šļø Database Clients:
⢠psql (PostgreSQL client v17.6)
⢠redis-cli (Redis client)
š ļø Development & Utilities:
⢠git (version control)
⢠jq (JSON processor)
⢠vim (text editor)
⢠tmux (terminal multiplexer)
⢠npm/node (JavaScript runtime)
ā” Load Testing:
⢠k6 (latest version - auto-updated)
š Shell Environment:
⢠zsh with Oh My Zsh
⢠Custom prompt and completions
| Mode | Use Case | Command Pattern |
|---|---|---|
| Interactive | Quick local debugging, testing tools | docker run -it --rm --entrypoint=/bin/zsh ... |
| Deployment | Persistent cluster pod, team access | kubectl apply -f k8s-cluster-utils.yml |
## šØ Local Development
### Build Image Locally
```bash
# Clone the repository
git clone https://github.com/donkeyx/cluster-utils.git
cd cluster-utils
# Build the image
docker build -t cluster-utils:local .
# Run locally for testing
docker run -d --name cluster-utils-test cluster-utils:local
# Connect to test container (automatically switches to zsh!)
docker exec -it cluster-utils-test sh
# Note: All commands work with Podman by replacing 'docker' with 'podman'
# Run with Docker (DockerHub - recommended)
docker run -d --rm --name cluster-utils donkeyx/cluster-utils:latest
# Alternative: GitHub Container Registry
docker run -d --rm --name cluster-utils ghcr.io/donkeyx/cluster-utils:latest
# Connect to running container (any shell command gives you zsh):
docker exec -it cluster-utils sh
docker exec -it cluster-utils zsh
# Kubernetes connections (easiest with service):
kubectl exec -it service/cluster-utils -- sh
kubectl exec -it deployment/cluster-utils -- sh
# Note: Podman users can replace 'docker' with 'podman' in all commands
# Check if port is open
nc -z -v -w5 10.1.1.51 8080
# DNS resolution
dig google.com
nslookup my-service.default.svc.cluster.local
# HTTP testing
curl -v https://api.example.com
wget --spider https://my-service/health
# PostgreSQL connection
psql -h postgres-host -U username -d database
# Redis testing
redis-cli -h redis-host ping
redis-cli -h redis-host info server
# k6 load testing (latest version auto-installed)
k6 run --vus 10 --duration 30s script.js
k6 run --http-debug https://api.example.com
# Check container environment
env | grep KUBERNETES
cat /var/run/secrets/kubernetes.io/serviceaccount/namespace
# Network troubleshooting within cluster
nc -z -v service-name 80
dig service-name.namespace.svc.cluster.local
sh, zsh, or bash connectionsBecause sometimes your clusters are stubborn as a mule, and you need the right tools to debug them! This container gives you everything you need to troubleshoot network issues, test services, and get your Kubernetes clusters working smoothly again. šÆ
Content type
Image
Digest
sha256:af14b2bd6ā¦
Size
88.6 MB
Last updated
9 months ago
docker pull donkeyx/cluster-utils