Kind Cluster Setup Guide¶
This guide walks through setting up a local Kind cluster with the essential prerequisites for MCP Gateway: Gateway API CRDs and Istio as the Gateway API provider.
Prerequisites¶
Note: On Linux hosts the broker uses fsnotify, which consumes inotify instances. Kind defaults to
fs.inotify.max_user_instances=128, and Kubernetes system components consume most of those slots, which can cause the broker pod to exit on startup withEMFILE("too many open files"). After creating the cluster, raise the limit on the Kind node:See Troubleshooting: Broker Crashes on Startup for details.
Step 1: Create Kind Cluster¶
# Create a Kind cluster with port mappings for Gateway API
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 8080
protocol: TCP
- containerPort: 443
hostPort: 8443
protocol: TCP
EOF
Why these port mappings: Allows access to the Istio gateway from your local machine on ports 8080 (HTTP) and 8443 (HTTPS).
Step 2: Install Gateway API CRDs¶
# Install Gateway API standard CRDs
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml
# Verify installation
kubectl get crd gateways.gateway.networking.k8s.io
Step 3: Install Istio as Gateway API Provider¶
# Add Istio Helm repository
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
# Install Istio base components
helm install istio-base istio/base -n istio-system --create-namespace --wait
# Install Istio control plane
helm install istiod istio/istiod -n istio-system --wait
# Verify Istio installation
kubectl get pods -n istio-system
Step 4: Verify Cluster Readiness¶
# Check that all components are ready
kubectl get pods -n istio-system
kubectl get crd | grep gateway
# Verify Kind cluster is accessible
kubectl cluster-info --context kind-kind
Your Kind cluster is now ready with Gateway API and Istio installed!
Next Steps¶
Now that you have a cluster with the prerequisites, choose your installation method:
- Install MCP Gateway via Helm - Recommended approach
- Install MCP Gateway via Kustomize - Alternative method
After installation, continue with configuration:
- Configure Gateway Listener and Route - Set up traffic routing
- Configure MCP Servers - Connect your MCP servers
- Authentication Setup - Optional: Add OAuth authentication
- Authorization Setup - Optional: Add access control
Cleanup¶
When you're done testing: