문서 목차
ORKESTRIX설치
cert-manager (TLS 인증서 발급·갱신 자동화)
Certificate 리소스를 선언하면 키 생성부터 발급, Secret 저장, 만료 전 자동 갱신까지 사람 개입 없이 처리해주는 cert manager 를 설치합니다.
QUANTUM C&S
Certificate 리소스를 선언하면 키 생성부터 발급, Secret 저장, 만료 전 자동 갱신까지 사람 개입 없이 처리해주는 cert-manager를 설치합니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
qks_cert_manager_enabled: true
qks_cert_manager_version: v1.21.2
qks_cert_manager_namespace: cert-manager
ubuntu.yaml:
qks_cert_manager_public_domain_used: false
실행
./install.sh ubuntu plays/qks-cert-manager.yaml
설치 흐름
./install.sh ubuntu plays/qks-cert-manager.yaml
├─ 1. Helm 저장소 등록 (jetstack)
├─ 2. cert-manager 네임스페이스 생성
└─ 3. Helm으로 cert-manager 배포 (컨트롤러 + webhook + cainjector, CRD 함께 설치)
설치 확인
kubectl get pods -n cert-manager
helm list -n cert-manager
cert-manager, cert-manager-webhook, cert-manager-cainjector 3개 파드가 Running, Helm 릴리즈가 deployed여야 합니다.
실제 동작 확인 — 발급과 갱신 자동화
자체서명(Self-Signed) Issuer로 테스트용 인증서를 발급하고, 실제로 자동 갱신되는지까지 확인합니다.
# test-cert-manager.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: test-selfsigned
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: test-cert
namespace: default
spec:
secretName: test-cert-tls
duration: 1h # 최소 1시간 이상이어야 함(웹훅 검증)
renewBefore: 55m # 최소 5분 이상이어야 함
issuerRef:
name: test-selfsigned
kind: ClusterIssuer
commonName: test.example.com
dnsNames:
- test.example.com
1. 발급 자동화 확인
kubectl apply -f test-cert-manager.yaml
kubectl get certificate test-cert -n default
READY가 True로 바뀌면(수 초 내) 발급 자동화가 정상 동작하는 것입니다.
2. 갱신 자동화 확인
발급 직후 인증서 정보를 기록해둡니다:
kubectl get secret test-cert-tls -n default -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -noout -serial -dates
cert-manager가 계산해둔 실제 갱신 예정 시각을 확인합니다:
kubectl get certificate test-cert -n default -o jsonpath='{.status.renewalTime}'
그 시각이 지날 때까지 기다린 뒤(renewBefore: 55m 기준 발급 후 약 5분), 같은 명령으로 다시 확인합니다:
kubectl get secret test-cert-tls -n default -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -noout -serial -dates
serial과 notBefore 값이 사람 개입 없이 자동으로 바뀌어 있으면, 갱신 자동화가 실제로 동작하는 것입니다.
확인 후 정리:
kubectl delete -f test-cert-manager.yaml