# Rancher 배포 ## 1. 배포시 주의 사항 - ingress 배포를 위해서는 인증서가 [secret으로 배포](#인증서-secret-생성)되어 있어야 한다. - [사설 인증서 사용](#사설-인증서-사용)시 ca를 secret으로 배포되어 있어야 한다. ## 2.custom-values.yaml 설명 - custom-values.yaml에 정의된 값에 대한 설명이다. ### 1) 오프라인 설정 - private 환경 배포시 사용한다. | Name | 설명 | 기본값 | | ---------------------- | ------------------------------------------------------------ | ------ | | `systemDefaultRegistry` | 오프라인 설치 시에 설정.
paasup 설치시에는 "paasup.io"로 설정 | `""` | | `rancherImage` | 오프라인 설치 시에 설정.
paasup 설치시에는 "paasup.io/rancher/rancher"로 설정 | `""` | ### 2) Pod 설정 | Name | 설명 | 기본값 | | ------------------------ | ---------------------------------- | --------- | | `extraEnv` | rancher pod의 replicas 설정. | "1" | | `replicas` | rancher pod의 replicas 설정. | "1" | | `tolerations` | rancher pod의 toleration 설정. | `[]` | | `nodeSelector` | rancher pod의 nodeSelector 설정. | `{}` | | `resources.request.cpu` | rancher pod의 cpu requst 설정. | `"100m"` | | `resources.request.memory` | rancher pod의 memory requst 설정. | `"300Mi"` | | `resources.limits.cpu` | rancher pod의 cpu limits 설정. | `"300m"` | | `resources.limits.memory` | rancher pod의 memory limits 설정. | `500Mi` | ### 3) Timezone 설정 - pod의 기본 timezone 설정을 위해 추가. - 기본값으로 KST를 사용하기 위하여 Asia/Seolul로 설정하였다. ``` yaml extraEnv: - name: TZ value: Asia/Seoul ``` ### 4) Ingress 설정 #### 4.1) tls 시크릿 직접 생성 - Rancher에서 ingress 사용을 위해서는 다음과 같이 설정할 수 있다. ``` yaml # ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform) hostname: rancher.example.org ingress: enable: true tls: source: secret secretName: rancher-tls-ingress extraAnnotations: konghq.com/connect-timeout: "30000" konghq.com/read-timeout: "1800000" konghq.com/write-timeout: "1800000" # 사설인증서 사용시 true 설정 ## privateCA를 true로 설정 privateCA: true ``` - ingress 사용을 위해서는 인증서를 secret으로 제공해야한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다. ``` sh kubectl create secret tls rancher-tls-ingress --cert= --key= -n ``` - 사설 인증서 사용시에는 ca를 secret으로 생성해야 한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다. secret의 이름은 `tls-ca`로 생성해야 한다. ``` sh kubectl create secret generic tls-ca --from-file=${CERT_FILE} -n ${NAMESPACE} ``` #### 4.2) cert-manager를 이용한 자동 생성 - cert manager를 통해 인증서 자동 생성 시 `custom-values.yaml` 수정한다. ``` yaml # ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform) hostname: rancher.example.org ingress: enable: true tls: source: secret secretName: rancher-tls-secret extraAnnotations: konghq.com/connect-timeout: "30000" konghq.com/read-timeout: "1800000" konghq.com/write-timeout: "1800000" # 사설인증서 사용시 추가 설정 ## privateCA를 true로 설정 privateCA: true ## 사설인증서 사용을 위한 전처리 작업을 true로 설정 preinstallHook: true ```