Files
K3S/addons/harbor/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

3.4 KiB
Raw Permalink Blame History

Harbor

Enterprise-grade container registry с поддержкой сканирования уязвимостей (Trivy), proxy cache для публичных registry (Docker Hub, GCR, Quay) и управлением доступом.

Быстрый старт

# group_vars/all/addons.yml
addon_harbor: true
harbor_ingress_host: "harbor.example.com"
harbor_ingress_tls: true

Секреты в vault.yml:

vault_harbor_admin_password: "Harbor12345"
vault_harbor_db_password: "db-password"   # если addon_postgresql: true
make addon-harbor

Параметры

Переменная Умолч. Описание
harbor_ingress_host harbor.local Hostname (обязательно)
harbor_ingress_tls false TLS через cert-manager
harbor_registry_storage_size 20Gi PVC для образов
harbor_database_mode auto auto | internal | external_postgresql
harbor_proxy_cache_enabled true Proxy cache для публичных registry

Интеграция с PostgreSQL

Выбор задаётся переменной harbor_database_mode:

  • auto — внешняя PostgreSQL при addon_postgresql: true, иначе встроенная PostgreSQL чарта Harbor;
  • internal — всегда встроенная PostgreSQL;
  • external_postgresql — всегда внешняя PostgreSQL.

Proxy Cache

Зеркалирование публичных registry. После установки включены по умолчанию:

  • dockerhub → Docker Hub
  • gcr → Google Container Registry
  • quay → Quay.io
  • ghcr → GitHub Container Registry
  • k8s-registry → registry.k8s.io

Использование:

# Вместо docker.io/library/nginx:latest:
docker pull harbor.example.com/dockerhub/library/nginx:latest

# Вместо ghcr.io/owner/image:tag:
docker pull harbor.example.com/ghcr/owner/image:tag

В Kubernetes:

spec:
  containers:
    - image: harbor.example.com/dockerhub/library/nginx:alpine

docker login

docker login harbor.example.com
# Username: admin
# Password: ...

docker tag myapp:latest harbor.example.com/library/myapp:latest
docker push harbor.example.com/library/myapp:latest

Kubernetes ImagePullSecret

kubectl create secret docker-registry harbor-pull \
  --docker-server=harbor.example.com \
  --docker-username=robot\$my-project \
  --docker-password="robot-token" \
  -n my-namespace
spec:
  imagePullSecrets:
    - name: harbor-pull
  containers:
    - image: harbor.example.com/my-project/myapp:latest

Сканирование образов (Trivy)

В Harbor UI → Administration → Interrogation Services → Trivy — включён по умолчанию. Сканирование запускается при каждом push автоматически.

Диагностика

kubectl get pods -n harbor
kubectl logs -n harbor deployment/harbor-core -f

Официальные ресурсы