Расскажи про администрирование репозитория Harbor

«Расскажи про администрирование репозитория Harbor» — вопрос из категории Docker, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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 в нерабочие часы.