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
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) 생성 화면이 표시된다.
|
|
|