Upgrade Serving NGINX Ingress Controller¶
EKF 2.0.X 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.
Fast Forward
If you are upgrading from EKF 2.0 or later, expand this box to fast-forward.
- Proceed to the Verify section.
Overview
What You’ll Need¶
- An upgraded management environment.
- Your clone of the Arrikto GitOps repository.
- Arrikto manifests for EKF version 2.0.2.
- An exposed EKF Serving deployment.
Procedure¶
Go to your GitOps repository inside your
rok-tools
management environment:root@rok-tools:~# cd ~/ops/deploymentsAttention
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.
Edit
rok/nginx-ingress-controller-serving/overlays/deploy/kustomization.yaml
and use the newservice-elb-acm
overlay:bases: - ../service-elb-acmEdit
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-13be86347715Edit
rok/nginx-ingress-controller-serving/overlays/deploy/patches/service-elb.yaml
and remove the following annotations since they are inherited from theservice-elb-acm
overlay:service.beta.kubernetes.io/aws-load-balancer-backend-protocol
service.beta.kubernetes.io/aws-load-balancer-ssl-ports
Commit your changes:
root@rok-tools:~/ops/deployments# git commit -am "Use ELB and ACM for exposing NGINX for serving"
Apply the manifests:
root@rok-tools:~/ops/deployments# rok-deploy --apply \ > rok/nginx-ingress-controller-serving/overlays/deployDelete any stale resources left back from previous NGINX Ingress Controller version:
root@rok-tools:~/ops/deployments# rok-kf-prune --app nginx-serving
Verify¶
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