Installation
Install the Gateway API CRDs, deploy krouter, and verify the installation.
Prerequisites
- A Kubernetes cluster, v1.31 or newer. Any conformant distribution works; see the official getting started guide if you need a cluster, or kind for a local one.
- kubectl configured against that cluster, with permission to create cluster-scoped resources (see Using RBAC authorization).
1. Install the Gateway API CRDs
krouter deliberately does not bundle the Gateway API
CustomResourceDefinitions:
they are cluster-wide, versioned upstream, and often shared with other
controllers. Install the v1.6.1 Standard channel: since Gateway API
v1.6 it carries everything krouter uses, including TCPRoute,
UDPRoute, TLSRoute, BackendTLSPolicy and ListenerSet:
kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.6.1/standard-install.yaml
Server-side apply is recommended: the larger CRDs exceed the annotation size limit used by client-side apply. See Server-Side Apply for background, and the upstream installation guide for channel details.
The Experimental channel works too: krouter ignores the resources it does not implement, and detects missing CRDs by degrading gracefully.
2. Deploy krouter
Everything (namespace, RBAC, control-plane Deployment, data-plane DaemonSet and dashboard Service) is one static manifest:
kubectl apply -f https://raw.githubusercontent.com/link-society/krouter/main/k8s/krouter.yaml
The manifest creates the krouter-system
namespace
and follows the
Pod Security Standards
restricted profile: non-root, read-only root filesystem, no added
capabilities.
3. Register the GatewayClass
A GatewayClass ties Gateways to krouter’s controller name:
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: krouter
spec:
controllerName: link-society.com/krouter
4. Verify
kubectl -n krouter-system rollout status deployment/krouter-controlplane
kubectl -n krouter-system rollout status daemonset/krouter-dataplane
kubectl get gatewayclass krouter
The GatewayClass should report Accepted: True, along with the exact
Gateway API feature set krouter supports in status.supportedFeatures and
a SupportedVersion condition confirming the installed CRD bundle.
Continue with Configuration, or jump straight into the first tutorial.