Что такое Harbor?
Harbor — это open source реестр контейнеров корпоративного уровня, который расширяет возможности Docker Registry дополнительными функциями безопасности, управления и соответствия требованиям. Harbor обеспечивает безопасное хранение и распространение контейнерных образов.
Основные возможности Harbor
- Сканирование уязвимостей — автоматическое сканирование образов на уязвимости
- Content trust — цифровые подписи образов для обеспечения целостности
- RBAC — детальное управление доступом к проектам и ресурсам
- Репликация — синхронизация образов между несколькими реестрами
- Веб-интерфейс — удобное управление через браузер
- REST API — программное управление ресурсами
Когда использовать Harbor
Harbor отлично подходит для:
- Корпоративных сред с требованиями к безопасности
- Управления образами в Kubernetes кластерах
- Обеспечения соответствия compliance требованиям
- Централизованного хранения приватных образов
- Автоматизации процессов CI/CD с проверкой безопасности
Установка Harbor
Установка через Docker Compose:
1# Скачивание Harbor
2wget https://github.com/goharbor/harbor/releases/download/v2.8.0/harbor-offline-installer-v2.8.0.tgz
3tar xvf harbor-offline-installer-v2.8.0.tgz
4cd harbor
5
6# Копирование конфигурации
7cp harbor.yml.tmpl harbor.yml
8
9# Редактирование harbor.yml
10# hostname: your-harbor-domain.com
11# https:
12# port: 443
13# certificate: /path/to/cert.crt
14# private_key: /path/to/cert.key
15
16# Запуск установки
17sudo ./install.sh
Установка в Kubernetes с Helm
1# Добавление Helm репозитория
2helm repo add harbor https://helm.goharbor.io
3helm repo update
4
5# Создание values.yaml
6cat > values.yaml << EOF
7expose:
8 type: ingress
9 ingress:
10 hosts:
11 core: harbor.example.com
12externalURL: https://harbor.example.com
13persistence:
14 enabled: true
15 persistentVolumeClaim:
16 registry:
17 size: 100Gi
18 chartmuseum:
19 size: 5Gi
20 database:
21 size: 1Gi
22 redis:
23 size: 1Gi
24EOF
25
26# Установка Harbor
27helm install harbor harbor/harbor -f values.yaml
Работа с Harbor через Docker CLI
Настройка сканирования уязвимостей
Harbor интегрируется с несколькими сканерами:
- Trivy — встроенный сканер по умолчанию
- Clair — альтернативный сканер уязвимостей
Интеграция с Kubernetes
Создание Secret для доступа к приватному registry:
1# Создание docker-registry secret
2kubectl create secret docker-registry harbor-secret \
3 --docker-server=harbor.example.com \
4 --docker-username=admin \
5 --docker-password=password \
6 --docker-email=admin@example.com
7
8# Использование в Pod
9apiVersion: v1
10kind: Pod
11metadata:
12 name: my-pod
13spec:
14 containers:
15 - name: my-container
16 image: harbor.example.com/library/nginx:latest
17 imagePullSecrets:
18 - name: harbor-secret
Настройка репликации
Для настройки репликации между Harbor инстансами:
1# Создание replication endpoint через API
2curl -X POST "https://harbor.example.com/api/v2.0/registries" \
3 -H "Authorization: Basic $(echo -n admin:password | base64)" \
4 -H "Content-Type: application/json" \
5 -d '{
6 "name": "target-harbor",
7 "url": "https://target-harbor.example.com",
8 "type": "harbor",
9 "credential": {
10 "access_key": "admin",
11 "access_secret": "password"
12 }
13 }'
Мониторинг и метрики
Harbor предоставляет метрики для Prometheus:
Best Practices
- Включай автоматическое сканирование уязвимостей для всех проектов
- Используй content trust для критически важных образов
- Настраивай политики retention для управления дисковым пространством
- Регулярно обновляй Harbor до последних версий
- Мониторь использование ресурсов и производительность
FAQ
Подходит ли Harbor для продакшена?
Да, Harbor широко используется в production средах и является одним из самых популярных корпоративных Docker registry решений с поддержкой CNCF.
Какие требования к инфраструктуре?
Минимальные требования: 4 ГБ RAM, 2 CPU cores, 40 ГБ дискового пространства. Для production рекомендуется использовать внешние базы данных и хранилища.
Можно ли мигрировать с Docker Hub на Harbor?
Да, Harbor поддерживает импорт образов из других реестров через функцию репликации или можно использовать инструменты миграции.