Configuring Ingress with Kubernetes Ingress resource
This tutorial will walk you through on how you can configure APISIX Ingress with the default Kubernetes Ingress resource.
Before you move on, make sure you:
- Have access to a Kubernetes cluster. This tutorial uses minikube.
- Install APISIX Ingress. See the Installation section.
We will deploy a sample service, kennethreitz/httpbin, for this tutorial.
You can deploy it to your Kubernetes cluster by running:
kubectl run httpbin --image kennethreitz/httpbin --port 80
kubectl expose pod httpbin --port 80
We can use the default Kubernetes Ingress resource to configure APISIX Ingress. The example below shows a sample configuration that creates a Route to the httpbin service:
# use v1beta1 if your Kubernetes cluster version is older than v1.19.0
# we use APISIX Ingress and it watches Ingress resources with "apisix" ingressClassName
- host: local.httpbin.org
This configuration will route all requests with host
local.httpbin.org to the httpbin service.
You can apply it by running:
kubectl apply -f httpbin-ingress.yaml
#Test the created Routes
If you followed along and used minikube and
NodePort service to expose APISIX, you can access it through the Node IP of the service
apisix-gateway. If the Node IP is not reachable directly (if you are on Darwin, Windows, or WSL), you can create a tunnel to access the service on your machine:
minikube service apisix-gateway --url -n ingress-apisix
Now, you can send a
GET request to the created Route and it will be Routed to the httpbin service:
curl --location --request GET "localhost:57687/get?foo1=bar1&foo2=bar2" -H "Host: local.httpbin.org"
You will receive a response similar to: