| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Idempotent Bash script for managing Kind clusters with local container registry support.
Inspired by StrimKKhaos.
Download from the latest GitHub release:
curl -sSLO https://github.com/see-quick/kind-script/releases/latest/download/kind-cluster.sh
chmod +x kind-cluster.shOr pin to a specific version:
curl -sSLO https://github.com/see-quick/kind-script/releases/download/v1.0.0/kind-cluster.sh
chmod +x kind-cluster.shClone the repo and run the build script to produce a single-file distribution:
git clone https://github.com/see-quick/kind-script.git
cd kind-script
./build.sh
# Output: dist/kind-cluster.sh./kind-cluster.sh create # Create cluster
./kind-cluster.sh status # Check status
./kind-cluster.sh delete # Cleanup| Command | Description |
|---|---|
| create | Create cluster with all components |
| delete | Delete cluster and cleanup |
| status | Show status |
| install-deps | Install kind and kubectl |
| version | Show version information |
| help | Show help |
--name NAME Cluster name (default: kind-cluster) --control-planes N Control plane nodes (default: 1) --workers N Worker nodes (default: 3) --image IMAGE Node image: latest, oldest, or full image --ip-family FAMILY ipv4, ipv6, dual (default: ipv4) --docker-cmd CMD docker or podman --registry-port PORT Registry port (default: 5001) --no-registry Disable local registry --no-cloud-provider Disable LoadBalancer support --zones N Number of zones to simulate --nodes-per-zone N Worker nodes per zone (default: 1) --force Force recreate existing cluster --debug Enable debug output
Simulate Kubernetes availability zones by distributing nodes across zones with standard topology labels. This is useful for testing zone-aware workload placement, topology spread constraints, and rack-aware replication (e.g., Strimzi Kafka rack.id).
# 3 zones, 1 worker per zone (3 CPs + 3 workers = 6 nodes)
./kind-cluster.sh create --zones 3
# 2 zones, 3 workers per zone (2 CPs + 6 workers = 8 nodes)
./kind-cluster.sh create --zones 2 --nodes-per-zone 3
# Via environment variables
ZONES=3 NODES_PER_ZONE=2 ./kind-cluster.sh createWhen --zones is specified:
Check zone distribution with status:
./kind-cluster.sh status
# Zones:
# zone0: kind-control-plane, kind-worker, kind-worker4
# zone1: kind-control-plane2, kind-worker2, kind-worker5# Custom cluster
./kind-cluster.sh create --name my-cluster --workers 5 --control-planes 3
# IPv6 cluster
./kind-cluster.sh create --ip-family ipv6
# Use Podman
./kind-cluster.sh create --docker-cmd podman
# Environment variables
CONTROL_NODES=3 WORKER_NODES=5 ./kind-cluster.sh create| Variable | Default | Description |
|---|---|---|
| KIND_VERSION | v0.31.0 | Kind version |
| KIND_NODE_IMAGE | latest | Node image |
| KIND_CLUSTER_NAME | kind-cluster | Cluster name |
| CONTROL_NODES | 1 | Control planes |
| WORKER_NODES | 3 | Workers |
| IP_FAMILY | ipv4 | IP family |
| DOCKER_CMD | docker | Container runtime |
| REGISTRY_PORT | 5001 | Registry port |
| ZONES | 0 | Number of zones |
| NODES_PER_ZONE | 1 | Workers per zone |
docker tag my-app:latest localhost:5001/my-app:latest
docker push localhost:5001/my-app:latest
kubectl run my-app --image=localhost:5001/my-app:latestKind and kubectl are installed automatically if missing.
| Back | FazBrowse Home | New Git URL |