Установка
IceGate разворачивается в Kubernetes с помощью Helm charts и оверлеев Kustomize для настройки под конкретное окружение.
Предварительные Требования
- Kubernetes >= 1.28 с Helm 3
- Объектное хранилище: AWS S3 или S3-совместимое (RustFS)
- Каталог Iceberg: встроенный S3-каталог (по умолчанию, без внешнего сервиса), либо Nessie (REST), AWS S3 Tables или AWS Glue
Helm Chart
Helm chart разворачивает все компоненты IceGate: Ingest, Query и задачу Migrate (создание схемы в виде хука pre-install/pre-upgrade).
Установка из реестра OCI
helm install icegate oci://ghcr.io/icegatetech/charts/icegate \
--version 0.1.0 \
--namespace icegate \
--create-namespace \
-f values.yaml
Установка из локальных чартов
git clone https://github.com/icegatetech/icegate.git
helm install icegate ./icegate/config/helm/icegate \
--namespace icegate \
--create-namespace \
-f values.yaml
Минимальный values.yaml
Примечание
Значения Helm используют camelCase и плоские ключи (например, backend: s3 + s3.warehouse). Chart транслирует их в нативный формат конфигурации serde tagged enum (backend: !s3), который ожидают бинарные файлы IceGate. См. Конфигурацию для справочника по нативному формату конфигурации.
Минимальный файл values.yaml со встроенным S3-каталогом по умолчанию и S3-совместимым хранилищем. Внешний сервис каталога не задействован - состояние каталога это объект root.json в бакете warehouse:
catalog:
backend: s3
s3:
warehouse: catalog
warehouse: "s3://warehouse/"
storage:
s3:
bucket: warehouse
region: us-east-1
endpoint: "http://rustfs:9000"
queue:
common:
basePath: "s3://queue/"
aws:
existingSecret: icegate-aws-credentials
region: us-east-1
REST-каталог (Nessie)
Используйте только если у вас уже развёрнут Nessie или другой REST-каталог Iceberg - это добавляет внешний сервис, который не нужен развёртыванию по умолчанию:
catalog:
backend: rest
rest:
uri: http://nessie:19120/iceberg
warehouse: "s3://warehouse/"
storage:
s3:
bucket: warehouse
region: us-east-1
endpoint: "http://rustfs:9000"
aws:
existingSecret: icegate-aws-credentials
region: us-east-1
Каталог AWS Glue
catalog:
backend: glue
glue:
catalogId: "123456789012"
warehouse: "s3://my-bucket/warehouse/"
storage:
s3:
bucket: my-bucket
region: eu-central-1
aws:
existingSecret: icegate-aws-credentials
region: eu-central-1
Каталог AWS S3 Tables
catalog:
backend: s3tables
s3tables:
tableBucketArn: "arn:aws:s3tables:eu-central-1:123456789012:bucket/my-tables"
storage:
s3:
region: eu-central-1
aws:
existingSecret: icegate-aws-credentials
region: eu-central-1
Основные значения Helm
| Значение | По умолчанию | Описание |
|---|---|---|
catalog.backend |
s3 |
Тип каталога: s3, rest, s3tables или glue |
storage.s3.bucket |
warehouse |
Имя S3-бакета |
storage.s3.endpoint |
"" |
Пользовательский S3-эндпоинт (RustFS). Опустить для реального AWS S3 |
aws.existingSecret |
"" |
Secret с ключами aws-access-key-id и aws-secret-access-key |
query.replicaCount |
1 |
Количество реплик сервиса Query |
ingest.replicaCount |
1 |
Количество реплик сервиса Ingest |
query.cache.enabled |
true |
Включить гибридный кеш диск+память для чтения запросов |
query.engine.walQueryEnabled |
false |
Включить данные WAL в результаты запросов для доступа в реальном времени |
serviceMonitor.enabled |
false |
Создать ресурсы Prometheus ServiceMonitor |
migrate.enabled |
true |
Запустить миграцию схемы как хук Helm |
Образы контейнеров
| Компонент | Образ |
|---|---|
| Query | ghcr.io/icegatetech/icegate-query |
| Ingest | ghcr.io/icegatetech/icegate-ingest |
| Migrate | ghcr.io/icegatetech/icegate-maintain |
Оверлеи Kustomize
Для настройки под конкретное окружение IceGate предоставляет оверлеи Kustomize, которые компонуют Helm chart с зависимостями инфраструктуры.
Доступные оверлеи
| Оверлей | Описание | Инфраструктура |
|---|---|---|
skaffold |
Локальная разработка со Skaffold | RustFS, стек наблюдаемости |
orbstack |
Среда выполнения контейнеров OrbStack | RustFS, стек наблюдаемости |
aws-glue |
Каталог AWS Glue | Стек наблюдаемости (внешний S3) |
aws-s3tables |
Каталог AWS S3 Tables | Стек наблюдаемости (внешний S3) |
external-s3 |
Внешний S3 + каталог Nessie | Nessie, стек наблюдаемости |
Все оверлеи используют общую базу (config/kustomize/base/), которая разворачивает стек наблюдаемости: Prometheus (kube-prometheus-stack), Grafana с готовыми дашбордами IceGate и Jaeger для распределённой трассировки.
Использование
# Применить оверлей напрямую
kubectl apply -k config/kustomize/overlays/aws-glue
# Или используйте Skaffold для разработки (см. Окружение для Разработки)
skaffold dev
Настройка оверлея
Каждый оверлей содержит:
kustomization.yaml- объявляет Helm charts и патчиvalues-icegate.yaml- значения Helm IceGate для данного окруженияsecret-aws.yaml- Secret с учётными данными AWS (отредактировать перед применением)
Для создания пользовательского оверлея:
cp -r config/kustomize/overlays/orbstack config/kustomize/overlays/my-env
vi config/kustomize/overlays/my-env/values-icegate.yaml
vi config/kustomize/overlays/my-env/secret-aws.yaml
kubectl apply -k config/kustomize/overlays/my-env
Проверка Установки
# Проверить, что поды запущены
kubectl get pods -n icegate
# Перенаправить порт к сервису Query
kubectl port-forward -n icegate svc/icegate-query 3100:3100
# Проверить готовность
curl http://localhost:3100/ready
Следующие Шаги
- Перейдите к Быстрому старту для загрузки первых данных
- Смотрите Конфигурацию для подробных настроек
- Настройте Окружение для разработки для участия в проекте