5.1.4 Configuring the Ingress Controller

You must install and configure an Ingress controller on the Kubernetes cluster. As per the sandbox deployment in Supported Architectures, the ingress controller will listen on HTTP.

Run the following commands on the <INSTALL_HOST>:
  1. Create a namespace for the ingress controller:
    kubectl create ns ingressns
  2. Add the helm chart repository for NGINX using the following command:
    helm repo add stable https://kubernetes.github.io/ingress-nginx

    Note:

    As the ingress controller is pulled from https://kubernetes.github.io you must whitelist this site to pull this image.
  3. Update the repository using the following command:
    helm repo update
  4. Run the following command on the Kubernetes cluster to install and configure the ingress controller:
    helm install nginx-ingress -n ingressns --set controller.service.type=NodePort \
    --set controller.service.nodePorts.http=30777 --set controller.service.nodePorts.https=30443 \
    --set controller.config.use-forwarded-headers=true \
    --set controller.config.enable-underscores-in-headers=true \
    --set controller.admissionWebhooks.enabled=false stable/ingress-nginx

    Note:

    This will start the ingress on HTTP (port 30777) and HTTPS (30443), however the OAA installation will use the HTTP port.
  5. To validate that the ingress controller has been successfully created, run the following command:
     kubectl get all,ingress -n ingressns
    The output appears as follows:
    
    NAME                                                          READY   STATUS    RESTARTS   AGE
    pod/nginx-ingress-ingress-nginx-controller-85985db585-jxcnl   1/1     Running   0          1m30s
    
    NAME                                              TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
    service/nginx-ingress-ingress-nginx-controller    NodePort   10.97.137.69   <none>        80:30777/TCP,443:30443/TCP   1m30s
    
    NAME                                                     READY   UP-TO-DATE   AVAILABLE      AGE
    deployment.apps/nginx-ingress-ingress-nginx-controller   1/1     1            1              1m30s
    
    NAME                                                                DESIRED   CURRENT   READY   AGE
    replicaset.apps/nginx-ingress-ingress-nginx-controller-85985db585   1         1         1       1m30s