在Amazon EKS上使用NGINX Ingress Controller时,可以利用AWS Certificate Manager

首先

以下是在Amazon EKS上设置AWS Certificate Manager到NGINX Ingress控制器的方法总结。本文假设使用Mac环境。

准备执行环境

    1. 请参考以下选项,以便进行本机的汉语转述:

请参考 AWS CLI 设置,以便运行 AWS CloudFormation 所需的 AWS CLI 设置。

请参考使用 eksctl 在 Mac 上构建 Amazon EKS 集群。

请参考在 Mac 上配置 Amazon EKS 上下文。

请参考在 Amazon EKS 上使用 Helm。

请参考在 Amazon EKS 上使用 NGINX Ingress Controller。

设定环境

    1. 使用Route53获取自定义域名。

 

    1. 获取AWS证书管理器。

 

    1. 创建patch.yaml

 

    1. 请参考AWS L7 ELB with SSL终止。

 

    1. 设置ACM的ARN。

patch.yaml
controller:
service:
targetPorts:
http: http
https: http
annotations:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${ACM的ARN}
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: “http”
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: “https”
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: ‘3600’

通过Helm升级NGINX Ingress Controller的图表。
请先设置Kubernetes集群上下文。
helm upgrade -i nginx-ingress-controller \
ingress-nginx/ingress-nginx \
-n nginx-ingress-controller \
-f patch.yaml

整理清理

    1. 从集群中删除

使用Helm删除NGINX Ingress Controller
helm delete nginx-ingress-controller -n nginx-ingress-controller

删除命名空间
kubectl delete ns nginx-ingress-controller