Summary
SSL 인증서 관리 봇인 Cert Manager 를 k3s에서 설치 및 설정하는 방법을 기록했습니다.
설치
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<version>/cert-manager.yaml<version>: GitHub Releases에서 버전을 확인해서 넣는다.
Success
Log가 쭉 뜨고
cert-manager created라는 문구가 보이면 성공
초기 설정
API 토큰 등록
저는 CloudFlare를 사용해서 도메인을 호스팅하고 있기 때문에 CloudFlare의 API 토큰이 필요합니다.
CloudFlare API 토큰 발급 방법
API Tokens검색Create Token선택Edit Zone DNS선택- Create Custom Token
- Zone, DNS, Edit
- Include, Specific zone,
<your-domain
kubectl create secret generic cloudflare-api-token-secret \
--from-literal=api-token='your-api-token' \
-n cert-managerSuccess
cloudflare-api-token-secret created문구가 나오면 성공
ClusterIssuer 생성
Let’s Encrpt에서 CloudFlare 방식을 써서 인증서를 받아오는 ClusterIssuer를 생성합니다.
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-tokenkind: ClusterIssuer: 클러스터 전체에 사용할 수 있는Issueremail: <your-email>: Let’s Encrypt 계정 이메일로 인증서 만료 시 알림 발송
Success
clusterissuer.cert-manager.io/letsencrypt-cloudflare created문구가 뜨면 성공