개발자 블로그를 위한 여섯걸음
이제 인그레스를 통해 외부로 서비스가 나갈 수 있지만, 아직 뭔가 불편하죠. 왼쪽 상단을 보면 보이는 Not secure | https:// 라는 주소창이 상당히 위험한 사이트처럼 보이게합니다.

이때 쿠버네티스에서는 '자가 서명 인증서'를 발급받아 해당 도메인이 TLS 인증서를 통해 클라이언트와 서버 간 통신을 안전하게 연결할 수 있습니다.
cert-manager 란?
인증서는 인증업체의 인증서를 발급받아 사용하거나 로컬에서 openssl을 통해 키를 생성하는 등 여러 방법이 있지만, 그중 쿠버네티스에서 사용하기 좋은 cert-manager를 알려드리겠습니다.
- helm 레포 추가
helm repo add jetstack https://charts.jetstack.io
helm repo update
- cert-manager 설치
helm install cert-manager jetstack/cert-manager \
-n cert-manager \
--create-namespace \
--set installCRDs=true
- issuer 생성
vi cluster-issuer.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: testemail@email.com
privateKeySecretRef:
name: letsencrypt-prod-key
solvers:
- http01:
ingress:
class: nginx
kubectl apply -f cluster-issuer.yaml
이때 email에 본인의 이메일을 넣어두시면 만료전에 메일이 옵니다
모두 완료했다면 cert-manager를 사용할 수 있게됩니다.

쿠버네티스에서는 secret 리소스를 통해 인증서를 생성/관리 할 수 있지만, 최대한 만들어진 것을 사용하여, 효과적으로 서비스를 운영하는 것에 초점을 맞췄습니다. 다음 포스팅에서 cert-manger를 통해 TLS 인증서를 자체적으로 발급받아 적용하는 방법에 대해 알아보겠습니다.