Skip to content

Ingress

Ingress is the solution that Kubernetes uses to route traffic "into" the cluster. It enables the functionality to make multiple web services available under one external IP address. There are various solutions available to satisfy the ingress functionality, which is basically a http reverse proxy. Most widely used is "ingress-nginx".

Setup not for local minikube

The setup instructions are not required in the minikube setup. For the minikube setup volumes are already made available. You can make sure with the following command minikube addons enable ingress. There is no experiment section in this chapter, as this was already performed in the basic section.

Setup

Ingress is deployed in the form of a so-called ingress controller. An ingress controller will take care of transforming configured ingress Kubernetes objects into reverse proxy configurations.

To deploy the ingress controller copy and paste the following helm values into a file called helm_ingress.yaml.

controller:
    hostNetwork: true
    kind: DaemonSet
    daemonset:
        useHostPort: true
    dnsPolicy: "ClusterFirstWithHostNet"
    reportNodeInternalIp: true
    config:
        proxy-body-size: "0"
        allow-snippet-annotations: true

Execute the following commands to install the ingress controller.

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace
  -f helm_ingress.yaml

To verify the installation, check all pods are running with the command kubectl get pods -n ingress-nginx.