1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jonothan-harbor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
installation_guide.md 24 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 04:31 5fdf7b5

Руководство по установке и настройке

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.

  • Python должен быть версии 2.7 или выше. Обратите внимание, что вам, возможно, придётся установить Python в дистрибутивах Linux (Gentoo, Arch), которые по умолчанию не поставляются с установленным интерпретатором Python.
  • Версия Docker engine должна быть 1.10 или выше. Инструкции по установке см.: https://docs.docker.com/engine/installation/.
  • Docker Compose должен быть версии 1.6.0 или выше. Инструкции по установке см.: https://docs.docker.com/compose/install/.

Шаги установки

Шаги установки сводятся к следующему:

  1. Скачайте установщик;
  2. Настройте harbor.cfg;
  3. Запустите install.sh, чтобы установить и запустить Harbor;

Скачивание установщика:

Бинарный файл установщика можно загрузить со страницы релиза. Выберите онлайн- или оффлайн-установщик. Используйте команду tar, чтобы извлечь пакет.

Онлайн-установщик:

    $ tar xvf harbor-online-installer-<version>.tgz

Оффлайн-установщик:

    $ tar xvf harbor-offline-installer-<version>.tgz

Настройка Harbor

Параметры конфигурации находятся в файле 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.

    • email_server = smtp.mydomain.com
    • email_server_port = 25
    • email_username = sample_admin@mydomain.com
    • email_password = abc
    • email_from = 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 через HTTPS

Harbor не поставляется с сертификатами и по умолчанию использует HTTP для обработки запросов. Хотя это упрощает настройку и работу, особенно в среде разработки или тестирования, это не рекомендуется для производственной среды. Чтобы включить HTTPS, обратитесь к разделу «Настройка доступа к Harbor через HTTPS» (Configure Harbor with HTTPS Access).

Управление жизненным циклом Harbor

Вы можете использовать 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 на настроенном порту

По умолчанию Harbor прослушивает порты 80 (HTTP) и 443 (HTTPS, если настроено) как для административного портала, так и для команд docker. Вы можете настроить его с помощью настроенного порта.

Для протокола HTTP

  1. Измените файл docker-compose.yml. Замените первый «80» на настроенный порт, например 8888:80.
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

Для протокола HTTPS

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jonothan-harbor.git
git@api.gitlife.ru:oschina-mirror/jonothan-harbor.git
oschina-mirror
jonothan-harbor
jonothan-harbor
master