You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
5.3 KiB
73 lines
5.3 KiB
|
|
# Postgresql-HA 배포
|
|
|
|
## 1. 배포 방법
|
|
### 1) 배포시 주의 사항
|
|
- 해당 차트 배포 시 `postgresql.resource.limits.memory`에 대한 설정을 반드시 해야한다.
|
|
설정하지 않을 시 배포가 되지 않는다.
|
|
|
|
### 2) 배포 방법
|
|
``` sh
|
|
git clone https://github.com/paasup/service-catalog.git
|
|
cd charts/postgresql-ha
|
|
helm upgrade postgresql ./ -f custom-values.yaml --install -n platform --create-namespace
|
|
```
|
|
|
|
## 2.custom-values.yaml 설명
|
|
|
|
- custom-values.yaml에 정의된 값에 대한 설명이다.
|
|
|
|
### 1) 전역 설정
|
|
- private 환경 배포시 사용한다.
|
|
|
|
| Name | 설명 | 기본값 |
|
|
| ---------------------- | ------------------------------------------------------------ | ------ |
|
|
| `global.imageRegistry` | 오프라인 설치 시에 설정. <br />paasup 설치시에는 "paasup.io"으로 설정 | `""` |
|
|
|
|
|
|
|
|
### 2) Postgresql 설정
|
|
|
|
- 해당 차트의 기본 배포설정은 싱글 배포이다.
|
|
- HA 배포를 원할 시 `postgresql.replicaCount`를 2이상으로 설정하고 [pgpool](#ha-배포)에 대한 추가 설정이 필요하다.
|
|
|
|
| Name | 설명 | 기본값 |
|
|
| --------------------------- | ------------------------------------------------------------ | ----------------------- |
|
|
| `postgresql.image.tag` | postgresql 실행 시 사용할 이미지의 tag를 설정. <br />helm 차트의 기본값을 사용. 버전 변경 시에는 차트 변경을 우선 고려하고 변경 불가 상황에서만 변경. | "" |
|
|
| `postgresql.username` | postgresql의 username | 'postgres' |
|
|
| `postgresql.password` | postgresql의 password | 'postgres' |
|
|
| `postgresql.repmgrUsername` | repmgr의 username | 'postgres' |
|
|
| `postgresql.repmgrPaasword` | repmgr의 password | 'postgres' |
|
|
| `postgresql.replicaCount` | postgresql pod에 대한 replicas 설정.<br />기본 값은 싱글 배포를 위해 1로 되어 있다. 2 이상 설정 시 ha 구성을 위하여 pgpool의 설정이 필요하다. | 1 |
|
|
| `postgresql.maxConnections` | postgresql의 Maximum connections 설정 | `"100"` |
|
|
| `postgresql.sharedPreloadLibraries` | Shared preload libraries (comma-separated list) | `"repmgr, pgaudit, pg_stat_statements"` |
|
|
| `postgresql.initdbScripts` | initdb scripts. 예시는 custom-values.yaml 참고 | `{}` |
|
|
| `postgresql.extraEnvVars` | postgresql의 pod에 추가할 환경 변수.<br />기본 설정은 timezon 환경변수가 추가되어 있음 | custom-values.yaml 참고 |
|
|
| `postgresql.resources` | postgresql의 pod의 cpu, memory 설정. | custom-values.yaml 참고 |
|
|
| `postgresql.tolerations` | postgresql의 pod 배포를 위한 toleration. | [] |
|
|
| `postgresql.nodeSelector` | postgresql의 pod가 배포되는 node 설정. | {} |
|
|
|
|
|
|
|
|
### 3) pgpool 설정
|
|
#### 싱글 배포 시 설정(기본 설정)
|
|
|
|
| Name | 설명 | 기본값 |
|
|
| ---------------------- | ------------------------------------------------------------ | -------------- |
|
|
| `pgpool.adminPassword` | pgpool의 관리자 패스워드. | `"postgresql"` |
|
|
| `pgpool.replicaCount` | pgpool pod에 대한 replica 수.<br />`postgresql.replicaCount`가 2 이상일 때, custom-values.yaml에서 `replicaCount: 0`을 주석처리하고 그 아래 있는 설정에 대한 주석을 해제한다. | `0` |
|
|
|
|
#### HA 배포
|
|
- `postgresql.replicaCount`가 2 이상일 때 사용한다. (기본은 주석처리되어 있음)
|
|
- `postgresql.maxConnections`에 따라서 다음과 같이 설정한다.
|
|
- `pgpool.maxPool * pgpool.numInitChildren < postgresql.maxConnections`
|
|
|
|
| Name | 설명 | 기본값 |
|
|
| ----------------------------- | ------------------------------------------------------------ | ----------------------- |
|
|
| `pgpool.adminPassword` | pgpool의 관리자 패스워드. | `"postgresql"` |
|
|
| `pgpool.replicaCount` | pgpool pod에 대한 replica 수.<br />`custom-values.yaml에서 `replicaCount: 0`을 주석처리하고 <br />그 아래 있는 설정에 대한 주석을 해제한다. | `2` |
|
|
| `pgpool.authenticationMethod` | pgpool authentication method. PSQL < 14일 때는 'md5'로 설정. | `"scram-sha-256"` |
|
|
| `postgresql.maxPool` | pgpool의 각 child 프로세스가 유지하는 Postgresql에 대한 최대 연결 수 | 4 |
|
|
| `postgresql.numInitChildren` | pgpool가 prefork하는 child 프로세스 수. | 32 |
|
|
| `postgresql.resources` | pgpool의 pod의 cpu, memory 설정. | custom-values.yaml 참고 |
|
|
|
|
|