Upgrade Serving NGINX Ingress Controller

EKF 2.0 uses Serving NGINX Ingress Controller 1.3.0. This guide will walk you through upgrading Serving NGINX Ingress Controller to version 1.3.0 from Serving NGINX Ingress Controller 0.30.0 that the previous version of EKF was using.

Optional

This guide is optional. If you have not exposed Serving in your EKF cluster, proceed to the What’s Next section.

Procedure

  1. Go to your GitOps repository inside your rok-tools management environment:

    root@rok-tools:~# cd ~/ops/deployments
  2. Attention

    If you are running on EKS, using ELB as your load balancer, and terminating TLS at the ELB level using an ACM certificate, follow steps a-d below. Otherwise, skip them and continue with the rest of the guide.

    1. Edit rok/nginx-ingress-controller-serving/overlays/deploy/kustomization.yaml and use the new service-elb-acm overlay:

      bases: - ../service-elb-acm
    2. Edit rok/nginx-ingress-controller-serving/overlays/deploy/patches/service-elb.yaml and specify the ARN of your ACM certificate in the corresponding annotation:

      annotations: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-central-1:123456789012:certificate/24e98149-3e01-4035-9081-13be86347715
    3. Edit rok/nginx-ingress-controller-serving/overlays/deploy/patches/service-elb.yaml and remove the following annotations since they are inherited from the service-elb-acm overlay:

      • service.beta.kubernetes.io/aws-load-balancer-backend-protocol
      • service.beta.kubernetes.io/aws-load-balancer-ssl-ports
    4. Commit your changes:

      root@rok-tools:~/ops/deployments# git commit -am "Use ELB and ACM for exposing NGINX for serving"
  3. Apply the manifests:

    root@rok-tools:~/ops/deployments# rok-deploy --apply \ > rok/nginx-ingress-controller-serving/overlays/deploy
  4. Delete any stale resources left back from previous NGINX Ingress Controller version:

    root@rok-tools:~/ops/deployments# rok-kf-prune --app nginx-serving

Verify

  1. Verify that Serving NGINX Ingress Controller is up and running. Check the Pod status and verify that field STATUS is Running and field READY is 1/1:

    root@rok-tools:~# kubectl -n ingress-nginx-serving get pods NAME READY STATUS RESTARTS AGE ingress-nginx-controller-7f74f657bd-ln59l 1/1 Running 0 1m

Summary

You have successfully upgraded Serving NGINX Ingress Controller.

What’s Next

The next step is to upgrade Istio.