2021年3月9日火曜日

nginx-ingress-controller で SSL を有効にする方法

概要

証明書を登録しそれを Ingress の定義ファイルで参照するだけで有効にできます

環境

  • Ubuntu18.04
  • kubernetes v1.20.4

証明書作成

何でも OK です
LetsEncrypt などで作成する場合はこちらを参考に取得してください

証明書登録

k8s の secret リソースに登録します
例えば証明書と鍵を ~/certs/tls.crt~/certs/tls.key に配置した場合は以下のコマンドで登録できます

  • kubectl create secret tls my-tls --key ~/certs/tls.key --cert ~/certs/tls.crt

確認は get を使いましょう
また yaml に保存したい場合は -o yaml を使います

  • kubectl get secret
  • kubectl get secret my-tls -o yaml

Ingress 定義作成

Ingress を定義する際は tls を使って SSL で受けるホストを指定します
また登録した証明書は secretName: my-tls という感じで参照します

  • vim ingress.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: registry-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  tls:
  - hosts:
    - foo.bar.com
    secretName: my-tls
  rules:
  - host: foo.bar.com
    http:
      paths:
        - path: /
          backend:
            serviceName: web
            servicePort: 80

参考サイト

0 件のコメント:

コメントを投稿