본문으로 바로가기

Ingress 에 cert-manager 연결

category Kubernetes/Kubernetes 사용법 2022. 12. 5. 10:44

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 접속

ssl 을 적용하여 접속한 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