kubernetes-skills/claude/k8s-kind/SKILL.md
Manage kind (Kubernetes IN Docker) local clusters. Use when creating, testing, or developing with local Kubernetes clusters in Docker containers.
npx skillsauth add rohitg00/kubectl-mcp-server k8s-kindInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage local Kubernetes clusters using kubectl-mcp-server's kind tools (32 tools).
kind enables running local Kubernetes clusters using Docker container "nodes". It's ideal for local development, CI/CD testing, and testing across Kubernetes versions.
Use this skill when:
| Priority | Rule | Impact | Tools |
|----------|------|--------|-------|
| 1 | Detect kind CLI first | CRITICAL | kind_detect_tool |
| 2 | Generate config for complex setups | HIGH | kind_config_generate_tool |
| 3 | Load images after cluster creation | HIGH | kind_load_image_tool |
| 4 | Export logs for debugging | MEDIUM | kind_export_logs_tool |
| Task | Tool | Example |
|------|------|---------|
| Detect kind | kind_detect_tool | kind_detect_tool() |
| Create cluster | kind_create_cluster_tool | kind_create_cluster_tool(name) |
| Load image | kind_load_image_tool | kind_load_image_tool(images, name) |
| Get kubeconfig | kind_get_kubeconfig_tool | kind_get_kubeconfig_tool(name) |
# macOS
brew install kind
# or download binary
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-$(uname)-amd64
chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind
kind_detect_tool()
kind_version_tool()
kind_provider_info_tool()
kind_list_clusters_tool()
kind_cluster_info_tool(name="my-cluster")
kind_cluster_status_tool(name="my-cluster")
kind_get_nodes_tool(name="my-cluster")
kind_node_labels_tool(name="my-cluster")
kind_config_generate_tool()
kind_config_generate_tool(workers=2, control_planes=1)
kind_config_generate_tool(workers=2, ingress=True, registry=True)
kind_config_generate_tool(control_planes=3, workers=3)
kind_config_validate_tool(config_path="/path/to/kind.yaml")
kind_config_show_tool(name="my-cluster")
kind_available_images_tool()
kind_get_kubeconfig_tool(name="my-cluster")
kind_get_kubeconfig_tool(name="my-cluster", internal=True)
kind_export_logs_tool(name="my-cluster")
kind_export_logs_tool(name="my-cluster", output_dir="/tmp/kind-logs")
kind_create_cluster_tool()
kind_create_cluster_tool(name="dev-cluster")
kind_create_cluster_tool(
name="v129-cluster",
image="kindest/node:v1.29.0"
)
kind_create_cluster_tool(
name="multi-node",
config="kind-config.yaml"
)
Create a file kind-config.yaml:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
extraPortMappings:
- containerPort: 30000
hostPort: 30000
protocol: TCP
- role: worker
- role: worker
kind_delete_cluster_tool(name="dev-cluster")
kind_delete_all_clusters_tool()
kind_registry_create_tool()
kind_registry_create_tool(name="my-registry", port=5001)
kind_registry_connect_tool(cluster_name="my-cluster")
kind_registry_status_tool()
kind_registry_create_tool()
config = kind_config_generate_tool(registry=True)
kind_create_cluster_tool(name="dev", config="/tmp/kind.yaml")
kind_registry_connect_tool(cluster_name="dev")
The ability to load local Docker images directly into kind clusters is one of its most powerful features for local development.
kind_load_image_tool(images="myapp:latest", name="my-cluster")
kind_load_image_tool(
images="myapp:latest,mydb:latest,myweb:v1",
name="my-cluster"
)
kind_load_image_archive_tool(
archive="/path/to/images.tar",
name="my-cluster"
)
kind_images_list_tool(cluster="my-cluster")
kind_images_list_tool(cluster="my-cluster", node="my-cluster-worker")
kind_node_inspect_tool(node="kind-control-plane")
kind_node_logs_tool(node="kind-control-plane")
kind_node_logs_tool(node="kind-control-plane", tail=200)
kind_node_exec_tool(
node="kind-control-plane",
command="crictl images"
)
kind_node_exec_tool(
node="kind-control-plane",
command="journalctl -u kubelet --no-pager -n 50"
)
kind_node_restart_tool(node="kind-worker")
kind_network_inspect_tool()
kind_port_mappings_tool(cluster="my-cluster")
kind_ingress_setup_tool(cluster="my-cluster")
kind_ingress_setup_tool(cluster="my-cluster", ingress_type="contour")
Build custom node images from Kubernetes source:
kind_build_node_image_tool()
kind_build_node_image_tool(
image="my-custom-node:v1.30.0",
kube_root="/path/to/kubernetes"
)
kind_set_kubeconfig_tool(name="my-cluster")
kind_create_cluster_tool(name="dev")
kind_load_image_tool(images="myapp:dev", name="dev")
kubectl_apply(manifest="""
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:dev
imagePullPolicy: Never
""")
kind_registry_create_tool()
config = kind_config_generate_tool(workers=1, ingress=True, registry=True)
kind_create_cluster_tool(name="dev", config="/tmp/kind-config.yaml")
kind_registry_connect_tool(cluster_name="dev")
kind_ingress_setup_tool(cluster="dev")
kind_create_cluster_tool(
name="ci-test",
image="kindest/node:v1.29.0",
wait="3m"
)
kind_load_image_tool(images="test-image:ci", name="ci-test")
kind_delete_cluster_tool(name="ci-test")
kind_create_cluster_tool(name="v128", image="kindest/node:v1.28.0")
kind_create_cluster_tool(name="v129", image="kindest/node:v1.29.0")
kind_create_cluster_tool(name="v130", image="kindest/node:v1.30.0")
kind_list_clusters_tool()
kind_create_cluster_tool(name="debug", retain=True)
kind_export_logs_tool(name="debug")
kind_get_nodes_tool(name="debug")
kind_cluster_status_tool(name="my-cluster")
kind_node_inspect_tool(node="kind-control-plane")
kind_node_logs_tool(node="kind-control-plane")
kind_node_exec_tool(
node="kind-control-plane",
command="crictl ps"
)
kind_node_restart_tool(node="kind-worker")
kind_network_inspect_tool()
kind_port_mappings_tool()
kind_delete_cluster_tool(name="broken-cluster")
kind_delete_all_clusters_tool()
Install kind CLI:
# macOS (Apple Silicon)
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-darwin-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# macOS (Intel)
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-darwin-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# Linux
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# Verify
kind version
| Tool | Description |
|------|-------------|
| kind_detect_tool | Detect CLI installation |
| kind_version_tool | Get CLI version |
| kind_list_clusters_tool | List all clusters |
| kind_get_nodes_tool | List nodes in cluster |
| kind_get_kubeconfig_tool | Get kubeconfig |
| kind_export_logs_tool | Export cluster logs |
| kind_cluster_info_tool | Get cluster info |
| kind_node_labels_tool | Get node labels |
| kind_config_validate_tool | Validate config file |
| kind_config_generate_tool | Generate config YAML |
| kind_config_show_tool | Show running config |
| kind_available_images_tool | List K8s versions |
| kind_registry_status_tool | Check registry status |
| kind_node_logs_tool | Get node logs |
| kind_node_inspect_tool | Inspect node details |
| kind_network_inspect_tool | Inspect Docker network |
| kind_port_mappings_tool | List port mappings |
| kind_cluster_status_tool | Get cluster health |
| kind_images_list_tool | List images on nodes |
| kind_provider_info_tool | Get provider info |
| Tool | Description |
|------|-------------|
| kind_create_cluster_tool | Create cluster |
| kind_delete_cluster_tool | Delete cluster |
| kind_delete_all_clusters_tool | Delete all clusters |
| kind_load_image_tool | Load Docker images |
| kind_load_image_archive_tool | Load from archive |
| kind_build_node_image_tool | Build node image |
| kind_set_kubeconfig_tool | Set kubeconfig context |
| kind_registry_create_tool | Create local registry |
| kind_registry_connect_tool | Connect to registry |
| kind_node_exec_tool | Execute on node |
| kind_node_restart_tool | Restart node |
| kind_ingress_setup_tool | Setup ingress |
| Feature | kind | vind (vCluster) | |---------|------|-----------------| | Purpose | Local dev/CI clusters | Virtual clusters in existing K8s | | Isolation | Full clusters in Docker | Virtual namespaces with isolation | | Resource Usage | Higher (full cluster) | Lower (shares host cluster) | | Best For | Local testing, CI/CD | Multi-tenancy, dev environments | | Requires | Docker | Existing K8s cluster |
development
Manage vCluster (virtual Kubernetes clusters) instances using vind. Use when creating, managing, or operating lightweight virtual clusters for development, testing, or multi-tenancy.
development
Debug Kubernetes pods, nodes, and workloads. Use when pods are failing, containers crash, nodes are unhealthy, or users mention debugging, troubleshooting, or diagnosing Kubernetes issues.
devops
Kubernetes storage management for PVCs, storage classes, and persistent volumes. Use when provisioning storage, managing volumes, or troubleshooting storage issues.
testing
Manage Istio service mesh for traffic management, security, and observability. Use for traffic shifting, canary releases, mTLS, and service mesh troubleshooting.