Как настроить Harbour на кластере k8s?
Я пытаюсь развернуть Harbour(частный реестр докеров) в кластере k8s (предоставленном Rancher) с помощью helm(values.yaml). ниже мой valuse.yaml.
Сеть У
меня есть nginx перед контроллером k8s ingress nginx.
nginx(http 301 перенаправление на https, например http://harbor.mydomain.com/ -> https://harbor.ssgadm.com/) -> ingress-nginx -> портовый сервис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. успешно выполнен вход в докер, но не удалось отправить изображение докера с сообщением: отказано: запрошенный доступ к ресурсу запрещен
- Невозможно увидеть конечную точку реестра 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
попробуйте добавить 0м.
Также проверка работоспособности среды: должна завершиться неудачей без SSL, включите внешний ss в базе данных:
sslmode=require
Если возникнут другие проблемы, проверьте журналы установленной гавани:
$ kubectl logs -n harbor your-harbor-pod