Skip to main content

Ingress (NGINX)


In order for Tangram Pro™ to work properly, your Kubernetes cluster needs an ingress class. Ingresses allow web traffic to access the application, and usually provide services like load balancing and TLS/SSL termination for your cluster.

Installing the Ingress NGINX Controller

  1. Create a namespace in which Ingress NGINX will be installed.

    export NGINX_NAMESPACE="<your_nginx_namespace>"  # set this value to your desired nginx namespace, i.e., 'ingress-nginx'
    kubectl create ns "$NGINX_NAMESPACE"
    
  2. Add the Ingress NGINX chart repo to Helm and update it.

    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    helm repo update
    
  3. Create a Helm values file to configure how Ingress NGINX is installed to your cluster.

    note

    Following are the settings Tangram Flex uses along with some common configurations. While we cannot provide all possible permutations for every need in this tutorial, if you are not sure what configuration you need contact your Tangram Flex representative to set up a collaboration session to determine what is best for your deployment.

    cat <<EOF >> ingress_nginx_values.yaml
    controller:
      allowSnippetAnnotations: false
      config:
        proxy-read-timeout: "3600"
        proxy-send-timeout: "3600"
        use-gzip: true
        # real-ip-header: proxy_protocol # useful if you have a L4 proxy in front of NGINX
        # set-real-ip-from: 0.0.0.0/0
        # use-proxy-protocol: true
        # use-forwarded-headers: true
    EOF
    
    Review the full set of values

    For the full set of values options look here.

  4. Install the ingress controller in the namespace you created above:

    helm install -n "$NGINX_NAMESPACE" ingress-nginx ingress-nginx/ingress-nginx -f ingress_nginx_values.yaml
    
    note

    If you are using the deployment package the -f argument will be ingress/ingress_nginx_values.yaml

  5. Verify the ingress controller is running:

    kubectl get deploy/ingress-nginx-controller -n "$NGINX_NAMESPACE" -w
    
Review the Source Docs

Review the Ingress NGINX Controller docs and the Helm chart docs for more info.