kind (Kubernetes IN Docker) Management
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.
When to Apply
Use this skill when:
-
User mentions: "kind", "local cluster", "Kubernetes in Docker", "dev cluster"
-
Operations: creating local clusters, loading images, CI/CD testing
-
Keywords: "local development", "test cluster", "load image", "multi-node"
Priority Rules
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
Quick Reference
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)
Prerequisites
- kind CLI: Required for all kind tools
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
- Docker: Required (kind runs clusters in Docker containers)
Check Installation
kind_detect_tool()
kind_version_tool()
kind_provider_info_tool()
List Clusters
kind_list_clusters_tool()
Get Cluster Information
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")
Configuration Management
Generate Config
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)
Validate Config
kind_config_validate_tool(config_path="/path/to/kind.yaml")
Show Running Config
kind_config_show_tool(name="my-cluster")
Available Images
kind_available_images_tool()
Get Kubeconfig
kind_get_kubeconfig_tool(name="my-cluster")
kind_get_kubeconfig_tool(name="my-cluster", internal=True)
Export Logs
kind_export_logs_tool(name="my-cluster")
kind_export_logs_tool(name="my-cluster", output_dir="/tmp/kind-logs")
Cluster Lifecycle
Create Cluster
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" )
Multi-Node Config Example
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
Delete Cluster
kind_delete_cluster_tool(name="dev-cluster")
kind_delete_all_clusters_tool()
Local Registry Integration
Create Registry
kind_registry_create_tool()
kind_registry_create_tool(name="my-registry", port=5001)
Connect Cluster to Registry
kind_registry_connect_tool(cluster_name="my-cluster")
Check Registry Status
kind_registry_status_tool()
Registry Workflow
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")
Image Loading (Key Feature!)
The ability to load local Docker images directly into kind clusters is one of its most powerful features for local development.
Load Docker Images
kind_load_image_tool(images="myapp:latest", name="my-cluster")
kind_load_image_tool( images="myapp:latest,mydb:latest,myweb:v1", name="my-cluster" )
Load from Archive
kind_load_image_archive_tool( archive="/path/to/images.tar", name="my-cluster" )
List Images on Cluster
kind_images_list_tool(cluster="my-cluster")
kind_images_list_tool(cluster="my-cluster", node="my-cluster-worker")
Node Management
Inspect Node
kind_node_inspect_tool(node="kind-control-plane")
Get Node Logs
kind_node_logs_tool(node="kind-control-plane")
kind_node_logs_tool(node="kind-control-plane", tail=200)
Execute Command on Node
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" )
Restart Node
kind_node_restart_tool(node="kind-worker")
Networking
Inspect Network
kind_network_inspect_tool()
List Port Mappings
kind_port_mappings_tool(cluster="my-cluster")
Setup Ingress
kind_ingress_setup_tool(cluster="my-cluster")
kind_ingress_setup_tool(cluster="my-cluster", ingress_type="contour")
Advanced: Build Node Image
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" )
Update Kubeconfig
kind_set_kubeconfig_tool(name="my-cluster")
Development Workflow
Quick Local Development
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 """)
Development with Local Registry
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")
CI/CD Testing
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")
Version Testing
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()
Troubleshooting
Cluster Creation Issues
kind_create_cluster_tool(name="debug", retain=True)
kind_export_logs_tool(name="debug")
kind_get_nodes_tool(name="debug")
Cluster Health Check
kind_cluster_status_tool(name="my-cluster")
Node Issues
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")
Network Issues
kind_network_inspect_tool()
kind_port_mappings_tool()
Cleanup
kind_delete_cluster_tool(name="broken-cluster")
kind_delete_all_clusters_tool()
CLI Installation
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 Reference
Read-Only Tools (20)
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
Write Tools (12)
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
kind vs vind (vCluster)
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
Related Skills
-
k8s-vind - vCluster management
-
k8s-multicluster - Multi-cluster management
-
k8s-helm - Helm chart operations
-
k8s-operations - kubectl operations