Harbor можно установить одним из трёх способов:
Онлайн-установщик: установщик загружает образы Harbor из Docker hub. Поэтому он имеет небольшой размер.
Офлайн-установщик: используйте этот установщик, если на хосте нет подключения к интернету. Установщик содержит предварительно созданные образы, поэтому его размер больше.
Виртуальное устройство: если вы устанавливаете Harbor как компонент реестра vSphere Integrated Containers (VIC) или используете Harbor в качестве автономного реестра на платформе vSphere, скачайте OVA-версию Harbor.
Все установщики можно скачать со страницы официального релиза.
Чтобы установить виртуальное устройство Harbor, обратитесь к Руководству по установке виртуального устройства Harbor.
В этом руководстве описаны шаги по установке и настройке Harbor с помощью онлайн- или офлайн-установщика. Процессы установки практически одинаковы.
Если вы используете предыдущую версию Harbor, вам может потребоваться перенести данные в соответствии с новой схемой базы данных. Для получения более подробной информации см. Руководство по миграции данных.
Кроме того, инструкции по развёртыванию на Kubernetes были созданы сообществом. Подробнее см. в разделе «Настройка Harbor на Kubernetes».
Harbor развёртывается в виде нескольких контейнеров Docker и поэтому может быть развёрнут в любой операционной системе Linux, поддерживающей Docker. Целевому хосту требуется установить Python, Docker и Docker Compose.
Шаги установки сводятся к следующему:
Бинарный файл установщика можно загрузить со страницы релиза. Выберите онлайн- или оффлайн-установщик. Используйте команду tar, чтобы извлечь пакет.
Онлайн-установщик:
$ tar xvf harbor-online-installer-<version>.tgz
Оффлайн-установщик:
$ tar xvf harbor-offline-installer-<version>.tgz
Параметры конфигурации находятся в файле harbor.cfg. Параметры описаны ниже — обратите внимание, что как минимум вам нужно будет изменить атрибут hostname.
hostname: имя хоста целевого компьютера, которое используется для доступа к пользовательскому интерфейсу и службе реестра. Это должен быть IP-адрес или полное доменное имя (FQDN) вашей целевой машины, например, 192.168.1.10
или reg.yourdomain.com
. Не используйте localhost
или 127.0.0.1
для имени хоста — служба реестра должна быть доступна внешним клиентам!
ui_url_protocol: (http или https. По умолчанию — http) протокол, используемый для доступа к пользовательскому интерфейсу и сервису токенов/уведомлений. По умолчанию это http. Чтобы настроить протокол https, см. раздел Настройка Harbor с доступом HTTPS.
Настройки электронной почты: эти параметры необходимы для того, чтобы Harbor мог отправить пользователю электронное письмо для сброса пароля, и требуются только в том случае, если эта функция необходима. Также обратите внимание, что по умолчанию SSL-подключение не включено — если ваш SMTP-сервер требует SSL, но не поддерживает STARTTLS, то вам следует включить SSL, установив email_ssl = true.
admin \<sample_admin@mydomain.com\>
* harbor_admin_password: первоначальный пароль администратора. Этот пароль действует только при первом запуске Harbor. После этого этот параметр игнорируется, и пароль администратора должен быть установлен в пользовательском интерфейсе. Обратите внимание, что по умолчанию используются имя пользователя/пароль admin/Harbor12345.
auth_mode: тип используемой аутентификации. По умолчанию это db_auth, то есть учётные данные хранятся в базе данных. Для аутентификации LDAP установите для этого параметра значение ldap_auth.
ldap_url: URL конечной точки LDAP (например, ldaps://ldap.mydomain.com
). Используется только тогда, когда для параметра auth_mode установлено значение ldap_auth.
ldap_searchdn: DN пользователя, имеющего разрешение на поиск сервера LDAP/AD (например, uid=admin,ou=people,dc=mydomain,dc=com
).
ldap_search_pwd: пароль пользователя, указанного с помощью ldap_searchdn.
ldap_basedn: базовый DN для поиска пользователя, например, ou=people,dc=mydomain,dc=com
. Используется только тогда, когда для параметра auth_mode установлено значение ldap_auth.
ldap_filter: фильтр поиска для поиска пользователя, например (objectClass=person)
.
ldap_uid: атрибут, используемый для сопоставления пользователя во время поиска LDAP, это может быть uid, cn, email или другие атрибуты.
ldap_scope: область поиска пользователя: 1 — LDAP_SCOPE_BASE, 2 — LDAP_SCOPE_ONELEVEL, 3 — LDAP_SCOPE_SUBTREE. Значение по умолчанию — 3.
db_password: корневой пароль для базы данных MySQL, используемой для db_auth. Измените этот пароль для любого использования в рабочей среде!
self_registration: (on или off. Значение по умолчанию — on) Включение/отключение возможности регистрации пользователей. Если отключено, новых пользователей может создавать только пользователь Admin, только администратор может создавать новых пользователей в Harbor. ПРИМЕЧАНИЕ: Когда для параметра auth_mode установлено значение ldap_auth, функция самостоятельной регистрации всегда отключена, и этот флаг игнорируется.
use_compressed_js: (on или off. Значение по умолчанию — on) Для использования в рабочей среде установите этот флажок на on. В режиме разработки установите его на off, чтобы файлы JS можно было изменять отдельно.
max_job_workers: (значение по умолчанию равно 3) Максимальное количество рабочих процессов репликации в службе заданий. Для каждого задания репликации образа рабочий процесс синхронизирует все теги репозитория с удалённым назначением. Увеличение этого числа позволяет выполнять больше параллельных заданий репликации в системе. Однако, поскольку каждый рабочий процесс потребляет определённое количество сетевых ресурсов/ресурсов ЦП/IO, тщательно подбирайте значение этого атрибута в зависимости от аппаратных ресурсов хоста.
token_expiration: время истечения срока действия токена, созданного службой токенов, по умолчанию составляет 30 минут.
verify_remote_cert: (on или off. Значение по умолчанию — on) Этот флаг определяет, следует ли проверять SSL/TLS-сертификат, когда Harbor взаимодействует с удалённым экземпляром реестра. Установка этого атрибута на off обходит проверку SSL/TLS, которая часто используется, когда у удалённого экземпляра есть самозаверяющий или ненадёжный сертификат.
customize_crt: (on или off. Значение по умолчанию — on) Когда этот атрибут равен on, сценарий подготовки создаёт закрытый ключ и корневой сертификат для генерации/проверки токена реестра. Следующие атрибуты: crt_country, crt_state, crt_location, crt_organization, crt_organizationalunit, crt_commonname, crt_email используются в качестве параметров для создания ключей. Установите этот атрибут на off, если ключ и корневой сертификат предоставляются внешними источниками. Дополнительную информацию см. в разделе Настройка ключа и сертификата службы токенов Harbor.
По умолчанию Harbor хранит образы в вашей локальной файловой системе. В рабочей среде вы можете рассмотреть возможность использования другого хранилища данных вместо локальной файловой системы, такого как S3, Openstack Swift, Ceph и т. д. Вам необходимо обновить раздел storage
в файле common/templates/registry/config.yml
. Например, если вы используете Openstack Swift в качестве хранилища данных, раздел может выглядеть следующим образом:
storage:
swift:
username: admin **Пароль:** ADMIN_PASS
**URL авторизации:** http://keystone_addr:35357/v3/auth
**Арендатор:** admin
**Домен:** default
**Регион:** regionOne
**Контейнер:** docker_images
*Примечание: для получения подробной информации о бэкэнде хранилища реестра обратитесь к разделу «Справочник по конфигурации реестра» (Registry Configuration Reference).*
#### Завершение установки и запуск Harbor
После настройки harbor.cfg и бэкэнда хранилища (необязательно) установите и запустите Harbor с помощью скрипта install.sh. Обратите внимание, что онлайн-установщику может потребоваться некоторое время для загрузки образов Harbor из Docker hub.
```sh
$ sudo ./install.sh
Если всё работает правильно, вы сможете открыть браузер и посетить административный портал по адресу http://reg.yourdomain.com (замените reg.yourdomain.com на имя хоста, настроенное в вашем harbor.cfg). Обратите внимание, что по умолчанию имя пользователя и пароль администратора — admin/Harbor12345.
Войдите на административный портал и создайте новый проект, например, myproject. Затем вы можете использовать команды docker для входа и отправки образов (по умолчанию сервер реестра слушает порт 80):
$ docker login reg.yourdomain.com
$ docker push reg.yourdomain.com/myproject/myrepo:mytag
ВАЖНО: В стандартной установке Harbor используется HTTP, поэтому вам нужно будет добавить опцию --insecure-registry в клиентский демон Docker и перезапустить службу Docker.
Для получения информации об использовании Harbor обратитесь к Руководству пользователя Harbor (user_guide.md).
Harbor не поставляется с сертификатами и по умолчанию использует HTTP для обработки запросов. Хотя это упрощает настройку и работу, особенно в среде разработки или тестирования, это не рекомендуется для производственной среды. Чтобы включить HTTPS, обратитесь к разделу «Настройка доступа к Harbor через HTTPS» (Configure Harbor with HTTPS Access).
Вы можете использовать docker-compose для управления жизненным циклом Harbor. Вот несколько полезных команд (необходимо запускать в том же каталоге, где находится файл docker-compose.yml).
Остановка Harbor:
$ sudo docker-compose stop
Stopping nginx ... done
Stopping harbor-jobservice ... done
Stopping harbor-ui ... done
Stopting harbor-db ... done
Stopping registry ... done
Stopping harbor-log ... done
Перезапуск Harbor после остановки:
$ sudo docker-compose start
Starting log ... done
Starting ui ... done
Starting mysql ... done
Starting jobservice ... done
Starting registry ... done
Starting proxy ... done
Чтобы изменить конфигурацию Harbor, сначала остановите существующий экземпляр Harbor, обновите harbor.cfg, а затем снова запустите install.sh:
$ sudo docker-compose down
$ vim harbor.cfg
$ sudo install.sh
Удаление контейнеров Harbor при сохранении данных образа и файлов базы данных Harbor в файловой системе:
$ sudo docker-compose down
Удаление базы данных и данных образов Harbor (для чистой переустановки):
$ rm -r /data/database
$ rm -r /data/registry
Дополнительную информацию о docker-compose см. в разделе «Справочное руководство по командной строке Docker Compose».
По умолчанию данные реестра сохраняются в целевом каталоге хоста /data/. Эти данные остаются неизменными даже при удалении и/или воссоздании контейнеров Harbor.
Кроме того, Harbor использует rsyslog для сбора журналов каждого контейнера. По умолчанию эти файлы журналов хранятся в каталоге /var/log/harbor/ на целевом хосте для устранения неполадок.
По умолчанию Harbor прослушивает порты 80 (HTTP) и 443 (HTTPS, если настроено) как для административного портала, так и для команд docker. Вы можете настроить его с помощью настроенного порта.
proxy:
image: library/nginx:1.11.5
restart: always
volumes:
- ./config/nginx:/etc/nginx
ports:
- 8888:80
- 443:443
depends_on:
- mysql
- registry
- ui
- log **1.**
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
**2.**
Modify templates/registry/config.yml
Добавьте настроенный порт, например ":8888", после "$ui_url".
auth: token: issuer: registry-token-issuer realm: $ui_url:8888/service/token rootcertbundle: /etc/registry/root.crt service: token-service
**3.**
Запустите install.sh для обновления и запуска Harbor.
```sh
$ sudo docker-compose down
$ sudo install.sh
1. Включите HTTPS в Harbor, следуя этому руководству.
2. Измените docker-compose.yml
Замените первый «443» на настроенный порт, например 4443:443.
proxy:
image: library/nginx:1.11.5
restart: always
volumes:
- ./config/nginx:/etc/nginx
ports:
- 80:80
- 4443:443
depends_on:
- mysql
- registry
- ui
- log
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "proxy"
3. Измените templates/registry/config.yml
Добавьте настроенный порт, например ":4443", после "$ui_url".
auth:
token:
issuer: registry-token-issuer
realm: $ui_url:4443/service/token
rootcertbundle: /etc/registry/root.crt
service: token-service
4. Запустите install.sh для обновления и запуска Harbor.
$ sudo docker-compose down
$ sudo install.sh
1. Если Harbor работает неправильно, выполните следующие команды, чтобы узнать, все ли контейнеры Harbor находятся в состоянии UP:
$ sudo docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------------
harbor-db docker-entrypoint.sh mysqld Up 3306/tcp
harbor-jobservice /harbor/harbor_jobservice Up
harbor-log /bin/sh -c crond && rsyslo ... Up 0.0.0.0:1514->514/tcp
harbor-ui /harbor/harbor_ui Up
nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
registry /entrypoint.sh serve /etc/ ... Up 5000/tcp
Если контейнер не находится в состоянии UP, проверьте файл журнала этого контейнера в каталоге /var/log/harbor
. Например, если контейнер harbor-ui
не запущен, вы должны посмотреть файл журнала ui.log
.
2. При настройке Harbor за прокси-сервером nginx или эластичным балансировщиком нагрузки найдите строку ниже в common/templates/nginx/nginx.http.conf
и удалите её из разделов, если прокси-сервер уже имеет аналогичные настройки: location /
, location /v2/
и location /service/
.
proxy_set_header X-Forwarded-Proto $scheme;
И выполните следующие команды для перезапуска Harbor:
$ sudo docker-compose down
$ sudo ./prepare
$ sudo docker-compose up -d
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )