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