Repository for dip
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.
 
 
 
 
 
 

135 lines
3.5 KiB

# CloudBeaver 배포 가이드
CloudBeaver는 DBeaver가 제공하는 웹 기반 데이터베이스 관리 도구이다.
브라우저에서 PostgreSQL, MySQL, ClickHouse 등 다양한 데이터베이스에 접속하여 쿼리 실행 및 데이터 탐색이 가능하다.
- **chart version**: 1.1.4
- **app version**: 26.0.1
- **upstream**: https://avistotelecom.github.io/charts/
---
## 배포 방법
```sh
helm upgrade cloudbeaver ./ -f custom-values.yaml --install -n cloudbeaver --create-namespace
```
---
## custom-values.yaml 설명
### 1) 이미지 설정
| Name | 설명 | 기본값 |
|------|------|--------|
| `image.registry` | 이미지 레지스트리 | `docker.io` |
| `image.repository` | 이미지 저장소 | `dbeaver/cloudbeaver` |
| `image.tag` | 이미지 태그 | `26.0.1` |
| `image.pullPolicy` | 이미지 Pull 정책 | `IfNotPresent` |
### 2) 서비스 설정
| Name | 설명 | 기본값 |
|------|------|--------|
| `service.type` | 서비스 타입 | `ClusterIP` |
| `service.ports.http` | 서비스 포트 | `8978` |
### 3) Ingress 설정
| Name | 설명 | 기본값 |
|------|------|--------|
| `ingress.enabled` | Ingress 활성화 여부 | `true` |
| `ingress.ingressClassName` | IngressClass 이름 | `kong` |
| `ingress.hostname` | 접속 도메인 | `cloudbeaver.example.org` |
| `ingress.tls` | TLS 활성화 여부 | `true` |
cert-manager를 통한 인증서 자동 발급 및 Kong HTTPS 리다이렉트를 기본으로 사용한다.
TLS 시크릿은 cert-manager가 `{hostname}-tls` 이름으로 자동 생성한다.
```yaml
ingress:
annotations:
cert-manager.io/cluster-issuer: root-ca-issuer
cert-manager.io/duration: 8760h
cert-manager.io/renew-before: 720h
konghq.com/protocols: https
konghq.com/https-redirect-status-code: "301"
tls: true
```
### 4) 스토리지 설정
CloudBeaver는 DB 접속 정보, 사용자 설정 등을 `/opt/cloudbeaver/workspace`에 저장한다.
| Name | 설명 | 기본값 |
|------|------|--------|
| `persistence.enabled` | PVC 사용 여부 | `true` |
| `persistence.storageClass` | StorageClass (빈 값이면 기본 사용) | `""` |
| `persistence.size` | 볼륨 크기 | `5Gi` |
| `persistence.accessModes` | 접근 모드 | `[ReadWriteOnce]` |
### 5) 리소스 설정
| 티어 | requests.cpu | requests.memory | limits.cpu | limits.memory |
|------|-------------|-----------------|------------|---------------|
| small | 500m | 512Mi | 750m | 768Mi |
| medium | 500m | 1024Mi | 1000m | 1536Mi |
| large | 1000m | 2048Mi | 1500m | 3072Mi |
기본값은 `small`이며, 동시 접속 사용자 수와 연결할 데이터베이스 수에 따라 조정한다.
```yaml
# small (기본)
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: 750m
memory: 768Mi
# medium
# resources:
# requests:
# cpu: 500m
# memory: 1024Mi
# limits:
# cpu: 1000m
# memory: 1536Mi
# large
# resources:
# requests:
# cpu: 1000m
# memory: 2048Mi
# limits:
# cpu: 1500m
# memory: 3072Mi
```
### 6) 보안 컨텍스트
CloudBeaver는 UID/GID `8978`로 실행된다. 기본값 그대로 사용을 권장한다.
```yaml
podSecurityContext:
enabled: true
fsGroup: 8978
containerSecurityContext:
enabled: true
runAsUser: 8978
runAsGroup: 8978
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
```
---
## 초기 접속
배포 후 `ingress.hostname`으로 설정한 URL에 브라우저로 접속한다.
최초 접속 시 관리자 계정(Administrator) 생성 화면이 표시된다.