CLOUD/Kubernetes
[쿠버네티스] Ingress 에서 HTTPS 적용하기 (cert-manager, let's encrypt)
헐리
2021. 11. 1. 14:00
1. letsencrypt 인증서 발급
cert-manager를 설치한다. 이는 Let's Encrypt를 사용하는 무료 인증서 관리자이다.
cert-manager홈페이지에서 kubernetes 에 인증서를 설치하는 문서 주소이다
https://cert-manager.io/docs/installation/
Installation
Automatically provision and manage TLS certificates in Kubernetes
cert-manager.io
cert-manager가 Let's Encrypt를 이용하도록 Issuer 오브젝트 생성
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: ㅁㅁㅁ@ㅁㅁㅁㅁㅁ.kr
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
2. ingress 설정
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: AAAAAAAAAAAAAA-deploy
namespace: AAAAAAAAAAAAAA-ns
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: AAAAAAAAAAAAAA.kr
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: AAAAAAAAAAAAAA-service
port:
number: 3000
tls:
- hosts:
- AAAAAAAAAAAAAA.kr
secretName: letsencrypt-prod
위의 ingress를 적용한다
3. ingress 적용후 인증서 발행 확인
kubectl describe certificate letsencrypt-prod
몇분정도 시간이 소요된 후
Certificate issued successfully 가 나오면 성공