• Русский
  • Как использовать S3 Storage с ClickHouse

    В этом руководстве объясняется, как настроить Alauda Container Platform Log Storage for ClickHouse для использования S3 в качестве хранилища данных журналов.

    ClickHouse поддерживает два режима использования на основе S3:

    • Только S3: ClickHouse хранит данные таблиц журналов в S3.
    • Разделение холодных и горячих данных: ClickHouse хранит активные данные локально и переносит холодные данные в S3 на основе настроенных правил хранения.

    Перед началом работы

    Подготовьте Secret S3 в namespace cpaas-system целевого кластера хранения.

    Secret должен содержать метку cpaas.io/credentials: S3, поскольку страница установки плагина отфильтровывает доступные учетные данные S3 по этой метке.

    Пример:

    apiVersion: v1
    kind: Secret
    metadata:
      name: clickhouse-s3-config
      namespace: cpaas-system
      labels:
        cpaas.io/credentials: S3
    type: Opaque
    stringData:
      ACCESS_KEY_ID: <access-key-id>
      SECRET_ACCESS_KEY: <secret-access-key>
      ENDPOINT: https://<s3-endpoint>
      REGION: <region>
      BUCKET: <bucket-name>

    Описание полей Secret:

    ПолеОписание
    ACCESS_KEY_IDКлюч доступа для сервиса S3.
    SECRET_ACCESS_KEYСекретный ключ для сервиса S3.
    ENDPOINTEndpoint сервиса S3.
    REGIONРегион сервиса S3. Оставляйте пустым только в том случае, если backend не требует его.
    BUCKETBucket, используемый ClickHouse.

    Если endpoint S3 использует https, подготовьте дополнительный Secret с CA-сертификатом для Alauda Container Platform Log Storage for ClickHouse.

    Этот Secret должен использовать фиксированное имя clickhouse-ca-certificates и должен быть создан в namespace cpaas-system. Не изменяйте имя Secret, namespace или имя ключа. Замените только содержимое сертификата в ca-certificates.crt.

    Пример:

    apiVersion: v1
    kind: Secret
    metadata:
      name: clickhouse-ca-certificates
      namespace: cpaas-system
    type: Opaque
    stringData:
      ca-certificates.crt: |
        -----BEGIN CERTIFICATE-----
        <ca-certificate-content>
        -----END CERTIFICATE-----

    Примечания по Secret CA для HTTPS S3:

    ПолеТребование
    metadata.nameДолжно быть clickhouse-ca-certificates.
    metadata.namespaceДолжно быть cpaas-system.
    stringData.ca-certificates.crtЗамените это поле цепочкой CA-сертификатов, требуемой HTTPS endpoint S3.

    Использование S3 для хранения данных журналов

    При установке Alauda Container Platform Log Storage for ClickHouse установите для Storage Policy значение Separation of storage and compute.

    Оставьте Cold and Hot Separate отключенным, если требуется использовать режим только S3.

    В этом режиме:

    • Метаданные ClickHouse остаются в локальном хранилище или в выбранном StorageClass.
    • Данные таблиц журналов ClickHouse хранятся в S3.
    WARNING

    При использовании S3 для данных журналов ClickHouse по-прежнему важна производительность хранилища метаданных.

    • По возможности используйте LocalVolume для хранения метаданных ClickHouse.
    • Если LocalVolume использовать нельзя и для метаданных необходимо применить StorageClass, выберите высокопроизводительный backend хранения.
    • В качестве инженерной рекомендации планируйте устойчивую скорость чтения и записи более 200 MiB/s, чтобы снизить риск узких мест, связанных с метаданными.

    При установке настройте следующие поля:

    ПолеОписание
    Storage PolicyВыберите Separation of storage and compute.
    Metadata Storage TypeВыберите LocalVolume или StorageClass для метаданных ClickHouse.
    Metadata Storage PathОбязательно при выборе LocalVolume. Путь по умолчанию: /cpaas/data/clickhouse.
    Metadata StorageClassОбязательно при выборе StorageClass.
    Metadata CapacityРекомендуемое значение — 20 Gi.
    S3 for Log DataВыберите Secret S3, подготовленный в cpaas-system.
    Cold and Hot SeparateОставьте этот переключатель выключенным для режима только S3.

    Включение Cold and Hot Separate

    Если требуется, чтобы ClickHouse хранил активные данные локально и переносил холодные данные в S3, включите Cold and Hot Separate во время установки.

    После включения переключателя настройте:

    ПолеОписание
    S3 for Log Cold DataВыберите Secret S3, используемый для хранения холодных данных.
    Log Platform / Log Workload / Log System / Log Kubernetes / Kubernetes Event / AuditНастройте период хранения холодных данных для каждого типа журналов до их переноса в cold storage.

    Примечания по поведению:

    • Активные данные остаются в текущем хранилище ClickHouse.
    • Когда истекает настроенный период хранения, соответствующие данные переносятся в cold S3 storage.
    • Значение 0 означает, что данный тип журнала не переносится в cold storage.

    Ограничения и примечания

    • Текущий workflow установки плагина поддерживает настройку одного S3 target для хранения данных журналов и одного S3 target для холодного хранения.
    • Учетные данные S3 должны храниться в Kubernetes Secrets. Не раскрывайте ключи доступа в открытом виде в записях об установке или на снимках экрана.
    • Если endpoint S3 использует https, необходимо также создать Secret clickhouse-ca-certificates в cpaas-system. Настраивать следует только содержимое сертификата в ca-certificates.crt.
    • Тип storage policy и переключатель Cold and Hot Separate нельзя изменить после установки.
    • Настройки хранения холодных данных можно изменять после установки.
    • Эта возможность отличается от решения для экспорта или архивации журналов, описанного в How to Archive Logs to Third-Party Storage. Руководство по архивированию описывает экспорт журналов за пределы платформы, тогда как это руководство описывает нативное поведение хранения ClickHouse.
    • В сценариях аварийного восстановления не настраивайте primary и standby развертывания ClickHouse на использование одного и того же S3 bucket.

    Связанные темы