Cert-manager란?
Cert-manager는 Kubernetes 내부에서 HTTPS 통신을 위한 인증서를 생성하고, 또 인증서의 만료 기간이 되면 자동으로 인증서를 갱신해주는 역할을 하는 Certificate manager controller입니다.
1. Cert-manager 설치
1) cert-manager deploy
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.1/cert-manager.yaml
* helm으로 설치시
# helm repo add jetstack https://charts.jetstack.io # helm repo update # helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.9.1 |
2) 설치 확인
3) Issuer 설치
Issuer : 인증서 서명 요청을 이행하여 서명된 인증서를 생성할 수 있는 인증 기관을 나타내는 k8s 리소스
# vi cluster-issuer.yaml
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-issuer spec: acme: # 어떤 acme 서버를 사용할 지 지정 (아래 예제는 let's encrypt의 CA) server: https://acme-v02.api.letsencrypt.org/directory # 사용자 이메일 주소 기재 email: abc@efg.com # 수정 필요 privateKeySecretRef: name: issuer-key solvers: - http01: ingress: class: nginx |
4) ingress에 cert-manager 연결하기 (기존의 prometheus ingress에 추가 하기)
# kubectl edit ingress ingress -n monitoring
ingress.kubernetes.io/ssl-redirect: "true" kubernetes.io/tls-acme: "true" cert-manager.io/cluster-issuer: letsencrypt-issuer tls: - hosts: - prometheus.172.xxx.xxx.xxx.nip.io # 인증서를 적용할 도메인으로 변경 secretName: web-devbox-kr-cert # 인증서 key가 저장되는 secret |
5) web 접속
이렇게 ingress에 cert-manager를 활용하여 ssl 통신하는 방법을 완료하였다.
'Kubernetes > Kubernetes 사용법' 카테고리의 다른 글
Argocd-github 연결 (0) | 2022.12.12 |
---|---|
Istio 모니터링 (feat. nginx) (0) | 2022.12.08 |
Kubernetes 네트워크 구조 (0) | 2021.11.17 |