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.
 
 
 
 
 
 

4.1 KiB

OpenMetadata Dependencies 배포

1. 배포 방법

1) 배포 시 주의 사항

  • openmetadata-dependencies는 MySQL, OpenSearch, Airflow를 포함하는 의존성 차트이다.
  • openmetadata 차트보다 먼저 배포되어야 한다.
  • Airflow DAG 저장 및 로그 볼륨에 ReadWriteMany를 지원하는 StorageClass가 필요하다.
  • MySQL initdbScripts에 정의된 패스워드는 openmetadata 차트의 database 연결 설정과 일치해야 한다.

2) 배포 방법

git clone https://github.com/paasup/dip-catalog.git
cd manifests/helm/openmetadata-dependencies/1.12.1
helm upgrade openmetadata-dependencies ./ -f custom-values.yaml --install -n openmetadata --create-namespace

2. custom-values.yaml 설명

1) MySQL 설정

  • OpenMetadata(openmetadata_db)와 Airflow(airflow_db) 데이터베이스를 초기화 스크립트로 함께 생성한다.
Name 설명 기본값
mysql.primary.resources MySQL Pod의 자원 설정 requests: 500m/512Mi, limits: 750m/768Mi
mysql.primary.persistence.size MySQL 데이터 볼륨 크기 50Gi
  • DB 계정 패스워드 변경 시 initdbScripts 수정
    mysql:
      initdbScripts:
        init_openmetadata_db_scripts.sql: |
          CREATE DATABASE openmetadata_db;
          CREATE USER 'openmetadata_user'@'%' IDENTIFIED BY 'openmetadata_password';  # 패스워드 변경
          GRANT ALL PRIVILEGES ON openmetadata_db.* TO 'openmetadata_user'@'%' WITH GRANT OPTION;
          commit;      
        init_airflow_db_scripts.sql: |
          CREATE DATABASE airflow_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
          CREATE USER 'airflow_user'@'%' IDENTIFIED BY 'airflow_pass';  # 패스워드 변경
          GRANT ALL PRIVILEGES ON airflow_db.* TO 'airflow_user'@'%' WITH GRANT OPTION;
          commit;      
    

주의: initdbScripts는 MySQL 최초 초기화 시에만 실행된다. 패스워드를 변경하려면 PVC를 삭제하고 재배포하거나 MySQL에 직접 접속하여 변경해야 한다.

  • MySQL 리소스 Preset 참고
    Preset requests cpu requests memory limits cpu limits memory
    small 500m 512Mi 750m 768Mi
    medium 500m 1024Mi 750m 1536Mi
    large 1.0 2048Mi 1.5 3072Mi

2) OpenSearch 설정

Name 설명 기본값
opensearch.opensearchJavaOpts OpenSearch JVM 힙 메모리 설정 "-Xmx1g -Xms1g"
opensearch.persistence.size OpenSearch 데이터 볼륨 크기 30Gi
opensearch.resources OpenSearch Pod의 자원 설정 requests: 100m/256M, limits: 2000m/2048M
  • OpenSearch JVM 힙은 resources.limits.memory의 절반 이하로 설정을 권장한다.

    opensearch:
      opensearchJavaOpts: "-Xmx1g -Xms1g"
      resources:
        requests:
          cpu: "100m"
          memory: "256M"
        limits:
          cpu: "2000m"
          memory: "2048M"
    

3) Airflow 설정

  • OpenMetadata 전용 Airflow ingestion 이미지(docker.getcollate.io/openmetadata/ingestion)를 사용한다.

3.1) 리소스 설정

  • 기본값은 {}(무제한)으로 설정되어 있으며, 운영 환경에서는 적절한 리소스 제한을 설정한다.

    airflow:
      workers:
        replicas: 2
        resources:
          requests:
            cpu: "500m"
            memory: "1Gi"
          limits:
            cpu: "1000m"
            memory: "2Gi"
      scheduler:
        resources: {}
      webserver:
        resources: {}
      apiServer:
        resources: {}
      triggerer:
        resources: {}
    

3.2) 볼륨 설정

  • DAG 저장 공간과 로그 저장 공간에 ReadWriteMany StorageClass가 필요하다.

    airflow:
      dags:
        persistence:
          enabled: true
          storageClassName: ""   # ReadWriteMany를 지원하는 StorageClass 이름으로 변경
          accessMode: ReadWriteMany
          size: 1Gi
      logs:
        persistence:
          enabled: true
          storageClassName: ""   # ReadWriteMany를 지원하는 StorageClass 이름으로 변경
          size: 1Gi