반응형
- DNS 사이트 설정 및 등록
- 외부에서 나의 서버를 DNS 주소로 접속할수있게끔 도와주는 사이트
- DNS주소를 유료로 구매해야함
- 예시 사이트
- https://www.cloudflare.com/ko-kr/ (현재 회사에서 사용하는 사이트)
- https://www.godaddy.com/en-sg (회사에서 초창기에 썻던 사이트인데, RESTAPI를 사용하기 위해서는 유료 라이센스로 전환해야함)
- SSL 인증서 발급
- 예시: https://letsencrypt.org/ (무료라서 사람들이 많이 애용하는걸로 보임)
- 인증서 발급을 도와주는 툴
- 예시: https://certbot.eff.org/ (Let's Encrypt와 같이 많이들 사용하는것같다)
- k8s환경에서의 인증서 관리 툴. ingress-controller는 nginx-ingress가 설치 된 환경
- 예시: https://cert-manager.io/ (인증서 발급 및 인증서 갱신 자동화)
- cert-manager의 구성 방식은 아래와같음. Issuer, certificate는 cert-manager를 설치하면 같이 설치되는 CR(Custom Resource)
- clusterIssuer 또는 Issuer 리소스 생성
- letsencrypt와 cloudflare 연결 설정 진행
- certificate 리소스 생성
- clusterIssuer 또는 Issuer 리소스 생성
# Terraform 예시
# Issuer 생성
resource "kubernetes_manifest" "issuer_letsencrypt" {
manifest = {
apiVersion = "cert-manager.io/v1"
kind = "Issuer"
metadata = {
name = "letsencrypt"
namespace = kubernetes_namespace.nginx_ingress.metadata[0].name
}
spec = {
acme = {
server = "https://acme-v02.api.letsencrypt.org/directory"
email = ""
privateKeySecretRef = {
name = "letsencrypt-issuer"
}
solvers = [
{
dns01 = {
cloudflare = {
email = ""
apiTokenSecretRef = {
# cloudflare에서 제공된 api key가 담긴 secret 리소스 생성 필요
}
}
}
}
]
}
}
}
}
# certificate 생성
resource "kubernetes_manifest" "certificate_tls" {
manifest = {
apiVersion = "cert-manager.io/v1"
kind = "Certificate"
metadata = {
name = "" # tls 이름 지정
namespace = kubernetes_namespace.nginx_ingress.metadata[0].name
}
spec = {
secretName = "" # tls 정보가 저장될 secret 리소스 이름 저장
issuerRef = {
kind = "Issuer"
name = kubernetes_manifest.issuer_letsencrypt.manifest.metadata.name
}
dnsNames = [
# DNS 주소 정보 등록
]
duration = "2160h" # 90d (tls 인증서 유효기간, 기본값)
renewBefore = "360h" # 15d (tls 유효기간까지의 갱신 시점, 기본값)
}
}
}
반응형
'Develop > DevOps' 카테고리의 다른 글
[nginx-ingress] virtualserver, virtualserverroute (0) | 2024.12.04 |
---|---|
[github] github action Auto Assign 사용 (0) | 2024.11.24 |
[DevOps] Terraform, Terragrunt 에 대한 정리 (0) | 2024.11.23 |
[Grafana] database is locked 에러 대응 + DB migration (2) | 2024.10.17 |
[k8s] Kubernetes taint & toleration & nodeAffinity 공부 (0) | 2024.08.27 |