Files
K3S/addons/harbor/README.md
Sergey Antropoff eccc1c2a01 docs: полная документация проекта — docs/ и README.md для каждого аддона
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
  storage, security, cicd, observability, networking, operations,
  make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
  для каждого из 34 аддонов (vault и external-secrets уже существовали)
2026-04-26 00:22:06 +03:00

2.8 KiB
Raw 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_type авто internal | external
harbor_proxy_cache_enabled true Proxy cache для публичных registry

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

При addon_postgresql: true Harbor автоматически использует общий 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