Quick Start
This guide walks through installing Nantian Gateway on a local Kind cluster. After completing the steps below, the control plane, data plane, and dashboard will be operational.
Expected time to complete: approximately five minutes.
Before you begin
Section titled “Before you begin”Complete the prerequisites before proceeding:
- A running Kubernetes cluster (Kind recommended for local development)
kubectlandhelminstalled and available inPATH- Gateway API CRDs installed on the cluster
Step 1: Install the Helm chart
Section titled “Step 1: Install the Helm chart”Nantian Gateway is distributed as a Helm chart. The chart is available via the Helm repository as nantian-gw/nantian-gw.
For local development, install directly from the chart directory:
helm install nantian-gw nantian-gw/nantian-gwTo review the default configuration before installing:
helm show values nantian-gw/nantian-gwStep 2: Verify the installation
Section titled “Step 2: Verify the installation”After Helm completes, verify that all pods are running:
kubectl get pods -n nantian-gwExpected output:
NAME READY STATUS RESTARTS AGEnantian-gw-controlplane-xxxxxxxxx-xxxxx 1/1 Running 0 30snantian-gw-controlplane-xxxxxxxxx-xxxxx 1/1 Running 0 20snantian-gw-dataplane-xxxxxxxxx-xxxxx 1/1 Running 0 25snantian-gw-dataplane-xxxxxxxxx-xxxxx 1/1 Running 0 15snantian-gw-dashboard-xxxxxxxxx-xxxxx 1/1 Running 0 10sThe deployment should show two control plane replicas, two data plane replicas, and one dashboard pod. Each pod should display 1/1 in the READY column and Running in the STATUS column.
Verify that the GatewayClass resource was created:
kubectl get gatewayclassExpected output:
NAME CONTROLLER ACCEPTED AGEnantian-gateway gateway.nantian.io/gateway-controller True 1mStep 3: Deploy an example application
Section titled “Step 3: Deploy an example application”The chart includes a sample application that demonstrates the Gateway API routing model. Deploy it to verify end-to-end connectivity:
kubectl apply -f gateway/examples/httpbin.yamlThis manifest creates a deployment, service, and HTTPRoute for the httpbin testing application.
Verify the route was created:
kubectl get httprouteExpected output:
NAME HOSTNAMES AGEhttpbin-route 1mStep 4: Test the gateway
Section titled “Step 4: Test the gateway”Send a request through the gateway to the sample application:
curl -s http://localhost:18080/getExpected response:
{ "args": {}, "headers": { "Accept": "*/*", "Host": "httpbin.example.com", "User-Agent": "curl/8.0.0" }, "origin": "127.0.0.1", "url": "http://httpbin.example.com/get"}The response confirms that the request passed through the data plane and reached the backend service. The Host header was set by the gateway, and the origin reflects the data plane’s IP address.
What was deployed
Section titled “What was deployed”The Helm installation created the following components:
- Control plane (2 replicas) — watches Kubernetes resources, translates configuration, and pushes it to data plane instances via gRPC xDS
- Data plane (2 replicas) — handles client traffic, terminates TLS, performs routing, and forwards requests to backend services
- Dashboard (1 replica) — serves the web-based admin interface for monitoring and configuration
- GatewayClass — defines the gateway controller implementation
- Gateway — configures listeners for HTTP and HTTPS traffic
Next steps
Section titled “Next steps”- Your First Route — define custom routing rules for your own services
- Core Concepts — understand the Gateway API resource model and split-plane architecture
- Configuration Overview — customize the gateway for your environment