Ответ
Harbor — это корпоративный реестр контейнеров с открытым исходным кодом, который я разворачивал и администрировал для хранения и управления Docker-образами и артефактами OCI.
Основные задачи администрирования, которые я выполнял:
- Развертывание и настройка: Устанавливал через Helm в Kubernetes-кластер, настраивал ingress, TLS-сертификаты и хранилище (чаще всего S3-совместимое).
- Управление доступом: Интегрировал с корпоративным LDAP/Active Directory для централизованной аутентификации, настраивал роли и проекты для изоляции команд.
- Репликация: Настраивал политики репликации для синхронизации образов между инстансами Harbor (например, из staging в production) или в другой дата-центр для отказоустойчивости.
- Безопасность: Включал и настраивал сканирование уязвимостей с помощью встроенного Trivy, настраивал политики для блокировки развертывания образов с критическими CVE.
- Бэкапы и восстановление: Организовывал регулярное резервное копирование базы данных PostgreSQL и томов с данными образов.
- Мониторинг: Настраивал сбор метрик Harbor (экспортируются в формате Prometheus) и дашборды в Grafana для отслеживания здоровья, использования диска и активности.
Пример настройки репликации через harbor.yml при установке:
# Конфигурация репликации
replication:
# Глобальные настройки
max_job_count: 10
# Политика по умолчанию
default_policy:
enabled: true
override: false
Ключевые проблемы и решения: Основные сложности были связаны с производительностью при большом количестве образов и настройкой автоматической сборки мусора (garbage collection) без простоев. Решалось выделением достаточных ресурсов для Pod'ов Harbor и настройкой расписания GC в нерабочие часы.