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

OSCHINA-MIRROR/jonothan-harbor

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

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

В этом документе описывается, как развернуть Harbor в Kubernetes.

Предварительные условия

  • Необходимо загрузить образы Docker для Harbor.
    • Скачайте автономный установщик Harbor со страницы релизов.
    • Распакуйте автономный установщик и получите файл изображений tgz harbor.*.tgz.
    • Загрузите изображения в Docker:
      docker load -i harbor.*.tgz 
  • У вас должны быть знания о Kubernetes (контроллер репликации, сервис, постоянный том, запрос постоянного тома, Config Map).

Конфигурация

Мы предоставляем скрипт на Python make/kubernetes/prepare для создания файлов ConfigMap Kubernetes. Скрипт написан на языке Python, поэтому вам нужна версия Python в вашей среде развёртывания. Также скрипту нужен openssl для генерации закрытого ключа и сертификата, убедитесь, что у вас есть работающий openssl.

У скрипта есть несколько аргументов:

  • -f: По умолчанию — ../harbor.cfg. Вы можете указать другой конфигурационный файл Harbor.
  • -k: Путь к закрытому ключу https. Этот аргумент может перезаписать значение ssl_cert_key в harbor.cfg.
  • -c: Путь к сертификату https. Этот аргумент может перезаписать значение ssl_cert в harbor.cfg.
  • -s: Путь к секретному ключу. Должен состоять из 16 символов. Если вы его не зададите, скрипт сгенерирует его автоматически.

Базовая конфигурация

Эти базовые конфигурации необходимо установить. В противном случае вы не сможете развернуть Harbor в Kubernetes.

  • make/harbor.cfg: Базовая конфигурация Harbor. Обратитесь к harbor.cfg.

  • make/kubernetes/**/*.rc.yaml: Укажите конфигурацию контейнеров.
    Вам нужно указать путь к вашим образам во всех *.rc.yaml. Пример:

    containers:
        - name: nginx-app
          # очень важно, чтобы вы изменили путь образа.
          image: harbor/nginx
  • make/kubernetes/pv/*.pvc.yaml: Запрос постоянного тома.
    Вы можете установить ёмкость хранилища в этих файлах. Пример:

    resources:
      requests:
        # вы можете установить другое значение, чтобы адаптировать его к своим потребностям
        storage: 100Gi
  • make/kubernetes/pv/*.pv.yaml: Постоянный том. Связан с *.pvc.yaml.
    PV и PVC соответствуют один к одному. Если вы измените ёмкость PVC, вам нужно установить ёмкость PV вместе. Пример:

    capacity:
      # то же значение, что и у PVC
      storage: 100Gi

    В PV вы должны установить другой способ хранения данных, кроме hostPath:

    # это значение по умолчанию, вы должны использовать другие, такие как nfs.
    hostPath:
      path: /data/registry

    Для получения дополнительной информации о способах хранения обратитесь к документации Kubernetes.

Затем вы можете создать файлы ConfigMap с помощью команды:

python make/kubernetes/prepare

Будут созданы следующие файлы:

  • make/kubernetes/jobservice/jobservice.cm.yaml
  • make/kubernetes/mysql/mysql.cm.yaml
  • make/kubernetes/nginx/nginx.cm.yaml
  • make/kubernetes/registry/registry.cm.yaml
  • make/kubernetes/ui/ui.cm.yaml

Расширенная конфигурация

Если базовая конфигурация не соответствует вашим требованиям, вы можете прочитать этот раздел для получения более подробной информации.

./prepare имеет определённый формат заполнителя:

  • {{key}}: Это означает, что мы должны заменить заполнитель значением в config.cfg, которое называется key.
  • {{num key}}: Используется для многострочного текста. Он добавит num пробелов в начало каждой строки текста.

Вы можете найти все конфигурации Harbor в make/kubernetes/templates/. Есть спецификации этих файлов:

  • jobservice.cm.yaml: ENV и веб-конфигурация jobservice

  • mysql.cm.yaml: Пароль root MySQL

  • nginx.cm.yaml: Сертификат https и конфигурация nginx. Если вы знакомы с nginx, вы можете изменить его.

  • registry.cm.yaml: Сертификация службы токенов и конфигурация реестра Реестр использует файловую систему для хранения данных образов. Вы можете найти её так:

    storage:
        filesystem:
          rootdirectory: /storage

    Если вы хотите использовать другой бэкенд хранилища, обратитесь к документу Docker. Запуск

Когда вы закончите настройку и сгенерируете файлы ConfigMap, вы можете запустить Harbor в Kubernetes с помощью следующих команд:

# создать pv & pvc
kubectl apply -f make/kubernetes/pv/log.pv.yaml
kubectl apply -f make/kubernetes/pv/registry.pv.yaml
kubectl apply -f make/kubernetes/pv/storage.pv.yaml
kubectl apply -f make/kubernetes/pv/log.pvc.yaml
kubectl apply -f make/kubernetes/pv/registry.pvc.yaml
kubectl apply -f make/kubernetes/pv/storage.pvc.yaml

# создать конфигурационную карту
kubectl apply -f make/kubernetes/jobservice/jobservice.cm.yaml
kubectl apply -f make/kubernetes/mysql/mysql.cm.yaml
kubectl apply -f make/kubernetes/nginx/nginx.cm.yaml
kubectl apply -f make/kubernetes/registry/registry.cm.yaml
kubectl apply -f make/kubernetes/ui/ui.cm.yaml

# создать сервис
kubectl apply -f make/kubernetes/jobservice/jobservice.svc.yaml
kubectl apply -f make/kubernetes/mysql/mysql.svc.yaml
kubectl apply -f make/kubernetes/nginx/nginx.svc.yaml
kubectl apply -f make/kubernetes/registry/registry.svc.yaml
kubectl apply -f make/kubernetes/ui/ui.svc.yaml

# создать k8s rc
kubectl apply -f make/kubernetes/registry/registry.rc.yaml
kubectl apply -f make/kubernetes/mysql/mysql.rc.yaml
kubectl apply -f make/kubernetes/jobservice/jobservice.rc.yaml
kubectl apply -f make/kubernetes/ui/ui.rc.yaml
kubectl apply -f make/kubernetes/nginx/nginx.rc.yaml

Опубликовать ( 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