본문 바로가기
Kubernetes

Self Sign 인증서 적용하기 - 설치

by journalctl 2025. 3. 24.

 

개요

머리 아픈 짤

 

사내에서 Private 환경의 GitLab을 설치하던 중 인증서와 관련된 문제를 맞이하게 됐다.

기존에는 HTTP로 구성하였으나, Self Sign 인증서를 발급해서 적용하는 부분을 간단하게 정리하려고 한다. (금융권, 공공기관 아니면 AWS 사용을 적극 추천하고 싶다.)


설치

💡 KinD를 사용해서 Local Kubernetes Cluster 환경이며 버전은 v1.31.2 입니다.

이름 목적
Cert-Manager 인증서 발급 및 갱신
Trust-Manager 클러스터 전역에 인증서 Bundle 생성
Kyverno 클러스터 정책을 규정

Cert-Manager

  1. Helm Chart 다운로드
$ helm repo add jetstack https://charts.jetstack.io --force-update

$ helm pull jetstack/cert-manager
$ tar xvfz cert-manager-v1.17.1.tgz
$ cd cert-manager
  1. Cert-Manager Helm 설치
# Default 값으로 설치
$ helm upgrade cert-manager . -n cert-manager --create-namespace --install
  1. Cert-manager 확인
$ kubectl get po -n cert-manager
NAME                                       READY   STATUS    RESTARTS        AGE
cert-manager-6794b8d569-8t6vm              1/1     Running   2 (93m ago)    3d21h
cert-manager-cainjector-7f69cd69f7-m4dvn   1/1     Running   3 (5h42m ago)   3d21h
cert-manager-webhook-6cc5dccc4b-d8lkd      1/1     Running   2 (5h43m ago)   3d21h

Trust-Manager

  1. Helm Chart 다운로드
$ helm pull jetstack/trust-manager
$ tar xvfz trust-manager-v0.16.0.tgz
$ cd trust-manager
  1. Trust-Manager Helm 설치
# Default 값으로 설치
$ helm upgrade trust-manager . -n trust-manager --create-namespace --install
  1. Trust-manager 확인
NAME                            READY   STATUS    RESTARTS       AGE
trust-manager-759cc956b-mmrbq   1/1     Running   2 (5h9m ago)   3d21h

Kyverno

  1. Helm Chart 다운로드
$ helm repo add kyverno https://kyverno.github.io/kyverno/ --force-update

$ helm pull kyverno/kyverno
$ tar xvfz kyverno-3.3.7.tgz
$ cd kyverno
  1. Kyverno Helm 설치
$ helm upgrade kyverno . -n kyverno --create-namespace --install
  1. Kyverno 확인
$ kubectl get po -n kyverno
NAME                                            READY   STATUS    RESTARTS        AGE
kyverno-admission-controller-df7b67cf-7q629     1/1     Running   2 (5h48m ago)   3d21h
kyverno-background-controller-8544847cf-c78hx   1/1     Running   2 (5h48m ago)   3d21h
kyverno-cleanup-controller-5db46d8ddb-5dtz4     1/1     Running   2 (5h48m ago)   3d21h
kyverno-reports-controller-77f95686d4-9mlsm     1/1     Running   2 (5h48m ago)   3d21h

후기

Cert-Manager를 통해서 인증서를 발급 → Trust-Manager를 통해 클러스터 전역에 Bundle로 배포 → Kyverno ClusterPolicy를 사용해서 Admission Webhook 설정으로 진행할 것 같다.