Services and Routes
Create an HTTPRoute that points to a Kubernetes service in your cluster.
Prerequisites
Series Prerequisites
This page is part of the Getting Started with KIC series.
Complete the previous page, Install Kong Ingress Controller before completing this page.
How Kubernetes resources map to Kong Gateway entities
A Service inside Kubernetes is a way to abstract an application that is running on a set of Pods. This maps to two entities in Kong Gateway: Service and Upstream.
The Service entity in Kong Gateway holds the protocol information needed to talk to the upstream service and various other protocol-specific settings. The Upstream object defines load balancing and health-checking behavior.
flowchart LR
H(Request traffic)
subgraph Pods
direction LR
E(Target)
F(Target)
G(Target)
end
subgraph Kubernetes Service
direction TB
C(Service)
D(Upstream)
end
subgraph Ingress / HTTPRoute
direction LR
A(Route)
B(Route)
end
A --> C
B --> C
C --> D
D --> E
D --> F
D --> G
H --> A
linkStyle 6 stroke:#b6d7a8
Routes are configured using Gateway API or Ingress resources, such as HTTPRoute, TCPRoute, GRPCRoute, Ingress and more.
Deploy an echo service
Let’s start by deploying an echo service which returns information about the Kubernetes cluster:
kubectl apply -f https://developer.konghq.com/manifests/kic/echo-service.yaml -n kong
Create an HTTPRoute / Ingress
To route traffic to the echo service, create an HTTPRoute or Ingress resource:
Validate your configuration
Once the resource has been reconciled, you can call the /echo endpoint and Kong Gateway will route the request to the echo service:
curl "$PROXY_IP/echo" \
--no-progress-meter --fail-with-body
curl "$PROXY_IP/echo" \
--no-progress-meter --fail-with-body