Как настроить Harbour на кластере k8s?

Я пытаюсь развернуть Harbour(частный реестр докеров) в кластере k8s (предоставленном Rancher) с помощью helm(values.yaml). ниже мой valuse.yaml.

  1. Сеть У
    меня есть nginx перед контроллером k8s ingress nginx.
    nginx(http 301 перенаправление на https, например http://harbor.mydomain.com/ -> https://harbor.ssgadm.com/) -> ingress-nginx -> портовый сервис

  2. Harbour с nginx
    https://github.com/goharbor/harbor/blob/master/docs/1.10/install-config/troubleshoot-installation.md
    Команда Harbour сообщает, что Харбор отстает прокси-сервер nginx, удалите заголовок X-Forwarded-Proto, поэтому я добавил аннотацию ingress в values.yaml


Вот мои проблемы.
1. успешно выполнен вход в докер, но не удалось отправить изображение докера с сообщением: отказано: запрошенный доступ к ресурсу запрещен

  1. Невозможно увидеть конечную точку реестра minio на веб-странице порта.
    Не удалось найти конечные точки!

Итак, не могли бы вы помочь мне решить проблемы?

---
  harborAdminPassword: "админ"
  secretKey: "добавить-ваш-секрет0"
  logLevel: "информация"
  выставить: 
    тип: "вход"
    вход: 
      хосты: 
        core: "harbor.mydomain.com"
        нотариус: "harbor.notary.mydomain.com"
      аннотации:
        ingress.kubernetes.io/proxy-body-size: "0"
        ingress.kubernetes.io/ssl-redirect: "правда"
        nginx.ingress.kubernetes.io/proxy-body-size: "0"
        nginx.ingress.kubernetes.io/ssl-redirect: "правда"
        nginx.org/server-snippets: |
          место расположения / {
            proxy_hide_header 'X-Forwarded-Proto'
          }

          location /v2/ {
            proxy_hide_header 'X-Forwarded-Proto'
          }

          Служба определения местоположения/ {
            proxy_hide_header 'X-Forwarded-Proto'
          }
    loadBalancer: 
      IP: ""
    tls: 
      включен: ложь
      secretName: ""
  externalURL: "https://harbor.mydomain.com"
  упорство: 
    imageChartStorage: 
      тип: "s3"
      disableredirect: правда
      лазурь: 
        Имя учетной записи: ""
        accountkey: ""
        контейнер: ""
      gcs: 
        ведро: ""
        encodedkey: ""
      s3: 
        ведро: "докер"
        регион: "ус-восток-1"
        ключ доступа: "минио"
        secretkey: "minio"
        regionendpoint: "https://minio.mydomain.com"
      oss: 
        ведро: ""
        область: ""
        accesskeyid: ""
        accesskeysecret: ""
      быстро: 
        authurl: "https://storage.myprovider.com/v3/auth"
        имя пользователя: ""
        пароль: ""
        контейнер: ""
    включен: правда
    persistentVolumeClaim: 
      реестр: 
        storageClass: "nfs-provisioner"
        размер: "1Gi"
        existingClaim: ""
      диаграммамузей: 
        storageClass: "nfs-provisioner"
        размер: "1Gi"
        existingClaim: ""
      вакансии: 
        storageClass: "nfs-provisioner"
        размер: "1Gi"
        existingClaim: ""
      база данных: 
        storageClass: "nfs-provisioner"
        размер: "1Gi"
        existingClaim: ""
      Redis: 
        storageClass: "nfs-provisioner"
        размер: "1Gi"
        existingClaim: ""
  вакансии: 
    jobLogger: "база данных"
  база данных: 
    тип: "внутренний"
    внешний: 
      хост: ""
      имя пользователя: ""
      пароль: ""
      coreDatabase: "реестр"
      clairDatabase: "ясновидение"
      notaryServerDatabase: "notary_server"
      notarySignerDatabase: "нотариус-подписчик"
      sslmode: "отключить"
      порт: "5432"
  Redis: 
    тип: "внутренний"
    внешний: 
      хост: ""
      порт: "6379"
      пароль: ""
  ясновидящий: 
    включен: правда
  нотариус: 
    включен: ложь
  диаграммамузей: 
    включен: правда
  сертификат: 
    включен: правда

1 ответ

Убедитесь, что у вас выполнены все предварительные условия.

Убедитесь, что вы предоставили сертификаты для Harbor и Docker.

После создания файлов ca.crt, yourdomain.com.crt и yourdomain.com.key необходимо предоставить их в Harbour и Docker, а также перенастроить Harbor для их использования. Наконец перезапустите Docker Engine.

Чтобы разрешить отправку образов в реестр докеров, выполните следующие команды:

Вам необходимо включить пространство имен для Docker Hub, чтобы связать его с вашей учетной записью. Пространство имен совпадает с именем вашей учетной записи Docker Hub. Вам нужно переименовать изображение в YOUR_DOCKERHUB_NAME/docker-whale.

Отметьте изображение перед нажатием:

$ docker tag your_image YOUR_DOCKERHUB_NAME/your_image

и тогда вы сможете его подтолкнуть.

$ docker push YOUR_DOCKERHUB_NAME/your_image

Вы также продублировали nginx.ingress.kubernetes.io/proxy-body-size аннотация в конфигурационном файле.

Для NGINX клиенту будет возвращена ошибка 413, когда размер запроса превышает максимально допустимый размер тела запроса клиента. Этот размер можно настроить параметром client_max_body_size.

Чтобы настроить этот параметр глобально для всех правил Ingress, в NGINX ConfigMap можно задать значение размера тела прокси. Чтобы использовать пользовательские значения в правиле Ingress, определите эти аннотации:

nginx.ingress.kubernetes.io/proxy-body-size: 8m

попробуйте добавить .

Также проверка работоспособности среды: должна завершиться неудачей без SSL, включите внешний ss в базе данных:

sslmode=require

Если возникнут другие проблемы, проверьте журналы установленной гавани:

$ kubectl logs -n harbor your-harbor-pod
Другие вопросы по тегам