Files
service-catalog/charts/rancher/CUSTOM-README.md
T

110 lines
4.1 KiB
Markdown

# Rancher 배포
## 1. 배포시 주의 사항
- ingress 배포를 위해서는 인증서가 [secret으로 배포](#인증서-secret-생성)되어 있어야 한다.
- [사설 인증서 사용](#사설-인증서-사용)시 ca를 secret으로 배포되어 있어야 한다.
## 2.custom-values.yaml 설명
- custom-values.yaml에 정의된 값에 대한 설명이다.
### 1) 오프라인 설정
- private 환경 배포시 사용한다.
| Name | 설명 | 기본값 |
| ---------------------- | ------------------------------------------------------------ | ------ |
| `systemDefaultRegistry` | 오프라인 설치 시에 설정. <br />paasup 설치시에는 "paasup.io"로 설정 | `""` |
| `rancherImage` | 오프라인 설치 시에 설정. <br />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 설정
#### tls 시크릿 직접 생성
- Rancher에서 ingress 사용을 위해서는 다음과 같이 설정할 수 있다.
``` yaml
# ingress 배포 전 인증서 secret 배포 필요(secret 이름은 platform)
hostname: rancher.example.org
ingress:
enable: true
tls:
source: secret
secretName: rancher-tls-ingress
extraAnnotations:
nginx.ingress.kubernetes.io/proxy-body-size: 10m
# 사설인증서 사용시 true 설정
privateCA: true
```
- ingress 사용을 위해서는 인증서를 secret으로 제공해야한다. 로컬 파일을 이용해 secret을 생성하는 방법은 다음과 같다.
``` sh
kubectl create secret tls rancher-tls-ingress --cert=<path-to-cert-file> --key=<path-to-key-file> -n <namespace>
```
##### 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
```