はじめに
Amazon EKSでNGINX Ingress ControllerにAWS Certificate Managerを設定する方法をまとめます。
Mac環境を想定しています。
実行環境の準備
-
AWS CLIの設定
AWS CloudFormationを動かすためのAWS CLIの設定を参考にしてください。 -
EKSクラスタの構築
Macでeksctlを利用してAmazon EKSのクラスターを構築するを参考にしてください。 -
EKSのコンテキストの設定
MacにてAmazon EKSの設定をするを参考にしてください。 -
Helmの設定
Amazon EKSでHelmを利用するを参考にしてください。 -
NGINX Ingress Controllerの設定
Amazon EKSでNGINX Ingress Controllerを利用するを参考にしてください。
環境設定
-
Route53でカスタムドメインを取得します。
-
AWS Certificate Managerを取得します。
-
patch.yaml
を作成する
※AWS L7 ELB with SSL Terminationを参考にしてください。
※ACMのARN
を設定するpatch.yamlcontroller: 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'
-
NGINX Ingress ControllerのチャートをHelmでアップグレードする
※事前にKubernetesクラスターのコンテキストの設定をします。helm upgrade -i nginx-ingress-controller \ ingress-nginx/ingress-nginx \ -n nginx-ingress-controller \ -f patch.yaml
クリーンアップ
-
クラスターから削除する
-
NGINX Ingress ControllerをHelmで削除する
helm delete nginx-ingress-controller -n nginx-ingress-controller
-
Namespaceを削除する
kubectl delete ns nginx-ingress-controller