diff --git a/charts/rancher/CUSTOM-README.md b/charts/rancher/CUSTOM-README.md index ea2e62a..d44e6a1 100644 --- a/charts/rancher/CUSTOM-README.md +++ b/charts/rancher/CUSTOM-README.md @@ -44,30 +44,67 @@ extraEnv: ### 4) Ingress 설정 +#### tls 시크릿 직접 생성 + + - Rancher에서 ingress 사용을 위해서는 다음과 같이 설정할 수 있다. - ``` yaml - # ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform) - hostname: rancher.example.org - ingress: + ``` yaml + # ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform) + hostname: rancher.example.org + ingress: enable: true tls: - source: secret - secretName: rancher-tls-ingress + source: secret + secretName: rancher-tls-ingress extraAnnotations: - nginx.ingress.kubernetes.io/proxy-body-size: 10m + nginx.ingress.kubernetes.io/proxy-body-size: 10m - # 사설인증서 사용시 true 설정 - privateCA: true - ``` + # 사설인증서 사용시 true 설정 + privateCA: true + ``` -#### 인증서 secret 생성 - ingress 사용을 위해서는 인증서를 secret으로 제공해야한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다. ``` sh kubectl create secret tls rancher-tls-ingress --cert= --key= -n ``` -#### 사설 인증서 사용 +##### tls-ca 생성 - 사설 인증서 사용시에는 ca를 secret으로 생성해야 한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다. secret의 이름은 `tls-ca`로 생성해야 한다. ``` sh kubectl create secret generic tls-ca --from-file=${CERT_FILE} -n ${NAMESPACE} + ``` + + +#### cert-manager를 이용한 자동 생성 + + +- cert manager를 통해 자동생성 시 `custom-values.yaml` 수정. ingress annotaion에 추가한다. +``` yaml +# ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform) +hostname: rancher.example.org +ingress: + enable: true + tls: + source: secret + secretName: rancher-tls-secret + extraAnnotations: + nginx.ingress.kubernetes.io/proxy-body-size: 10m + cert-manager.io/cluster-issuer: "selfsigned-issuer" + cert-manager.io/duration: 8760h + cert-manager.io/renew-before: 720h + + +# 사설인증서 사용시 true 설정 +privateCA: true +``` + +##### tls-ca 생성 +- `rke` namespace에 `rancher-tls-secret` secret이 생성된 후에 작업을 진행한다. + ``` sh + kubectl get secret rancher-tls-secret + ``` +- 생성된 인증서 secret인 `rancher-tls-secret`에서 ca 추출하여 `tls-ca` secret 생성한다. + ``` sh + kubectl get secret rancher-tls-secret -o jsonpath='{.data.tls\.crt}' -n rke | base64 -d > cacerts.pem + kubectl create secret generic tls-ca --from-file=cacerts.pem -n rke ``` \ No newline at end of file diff --git a/charts/rancher/custom-values.yaml b/charts/rancher/custom-values.yaml index 37a4e1d..f4621e0 100644 --- a/charts/rancher/custom-values.yaml +++ b/charts/rancher/custom-values.yaml @@ -12,6 +12,12 @@ ingress: extraAnnotations: nginx.ingress.kubernetes.io/proxy-body-size: 10m + # cert-manager 사용시 + cert-manager.io/cluster-issuer: "selfsigned-issuer" + cert-manager.io/duration: 8760h + cert-manager.io/renew-before: 720h + + # 사설 인증서 사용시 true privateCA: true