Ingress Nginx

Abstract

We need an Ingress Controller, so we pick one.

Ingress Nginx#

This is a simple step, but a necessary one if you intend to allow services in your cluster to be accessed from elsewhere, which you probably do.

Ingress NGINX installation#

First, we should note that Ingress NGINX is a different thing than is NGINX Ingress, with two completely unrelated sets of documentation. The second version is produced by F5, of hardware load balancer fame, and is a bit trickier to get going though perfectly usable if you’re already used to it.

For the sake of ease we’ll listen to the Kubernetes documentation and use the Ingress NGINX controller instead as it is one of the three controllers maintained by Kubernetes. You can learn about it on the project’s GitHub.

For our purposes, though, we’ll expect that the cluster already has a metallb installation running in a namespace called networking. We’ll also be installing the ingress controller to that namespace.

The installation itself is pretty simple, at least according to the installation guide. You just run the apply command.

kubectl apply -n networking -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.13.3/deploy/static/provider/baremetal/deploy.yaml

And bingo, you’ve got your ingress controller ready to use.