Summary

SSL 인증서 관리 봇인 Cert Manager 를 k3s에서 설치 및 설정하는 방법을 기록했습니다.

설치

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<version>/cert-manager.yaml

Success

Log가 쭉 뜨고 cert-manager created 라는 문구가 보이면 성공

초기 설정

API 토큰 등록

저는 CloudFlare를 사용해서 도메인을 호스팅하고 있기 때문에 CloudFlare의 API 토큰이 필요합니다.

kubectl create secret generic cloudflare-api-token-secret \
--from-literal=api-token='your-api-token' \
-n cert-manager

Success

cloudflare-api-token-secret created 문구가 나오면 성공

ClusterIssuer 생성

Let’s Encrpt에서 CloudFlare 방식을 써서 인증서를 받아오는 ClusterIssuer를 생성합니다.

cluster-issuer.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-cloudflare
spec:
  acme:
    email: <your-email>
    server: https://acme-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      name: letsencrypt-cloudflare-account-key
    solvers:
    - dns01:
        cloudflare:
          apiTokenSecretRef:
            name: cloudflare-api-token-secret
            key: api-token
  • kind: ClusterIssuer : 클러스터 전체에 사용할 수 있는 Issuer
  • email: <your-email> : Let’s Encrypt 계정 이메일로 인증서 만료 시 알림 발송

Success

clusterissuer.cert-manager.io/letsencrypt-cloudflare created 문구가 뜨면 성공

References

공식 홈페이지
공식 GitHub