You are browsing documentation for an outdated version. See the latest documentation here.
Kong Ingress on Minikube
Setup Minikube
-
Install
minikube
Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop to try out Kubernetes or develop with it day-to-day.
-
Start
minikube
minikube start
It will take a few minutes to get all resources provisioned.
kubectl get nodes
Deploy the Kong Ingress Controller
You can deploy the Kong Ingress Controller using kubectl
or Helm
:
The results should look like this:
namespace/kong created
customresourcedefinition.apiextensions.k8s.io/kongplugins.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongconsumers.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongcredentials.configuration.konghq.com created
customresourcedefinition.apiextensions.k8s.io/kongingresses.configuration.konghq.com created
serviceaccount/kong-serviceaccount created
clusterrole.rbac.authorization.k8s.io/kong-ingress-clusterrole created
clusterrolebinding.rbac.authorization.k8s.io/kong-ingress-clusterrole-nisa-binding created
configmap/kong-server-blocks created
service/kong-proxy created
service/kong-validation-webhook created
deployment.extensions/kong created
Note: this process could take up to five minutes the first time.
Setup environment variables
Next, set up an environment variable with the IP address at which Kong is accessible. This is used to send requests into the Kubernetes cluster.
-
Get the IP address at which you can access Kong Gateway:
$ minikube service -n kong kong-proxy --url | head -1 # If installed by helm, service name would be "<release-name>-kong-proxy". # minikube service <release-name>-kong-proxy --url | head -1
The results should look like this:
http://192.168.99.100:32728
-
Set the environment variable. Replace
<ip-address>
with the Kong Gateway IP address you just retrieved:export PROXY_IP=<ip-address> echo $PROXY_IP
-
Verify that you can access Kong Gateway:
curl -i $PROXY_IP
The results should look like this:
HTTP/1.1 404 Not Found Date: Wed, 06 Sep 2023 06:48:26 GMT Content-Type: application/json; charset=utf-8 Connection: keep-alive Content-Length: 52 X-Kong-Response-Latency: 0 Server: kong/3.3.1 { "message":"no Route matched with those values" }
After you’ve installed the Kong Ingress Controller, please follow the getting started tutorial to learn about how to use the Ingress Controller.
Troubleshooting connection issues
The network is limited if you are using the Docker driver on Darwin, Windows, or WSL, and the Node IP is not reachable directly. When you deploy minikube on Linux with the Docker driver results in no tunnel being created. For more information, see accessing apps.
Error message
curl: (7) Failed to connect to 127.0.0.1 port 80 after 5 ms: Couldn't connect to server
Work around
Run the minikube tunnel
command in a separate terminal window to keep the tunnel open. This command creates a network route on the host to the service using the cluster’s IP address as a gateway. It exposes the external IP directly to any program running on the host operating system.