Регистрация порта – 405 не разрешено при входе в систему

Вопрос или проблема

Я хотел заняться использованием Harbor в течение довольно долгого времени и развернул график Helm на своем кластере, но хочу сохранить репозиторий внутренним и, следовательно, не использовать Ingress, а вместо этого использовать IP кластера. Однако, когда я пытаюсь его развернуть, даже с настройками по умолчанию из репозитория harbor-helm, я продолжаю получать ошибку 405 метод не разрешен, когда захожу в портал с правильными учетными данными через порт-прокси. Я видел и прочитал множество постов об этом в интернете, и многие просто меняют порядок правил Ingress, но, как я уже упоминал, я даже не использую Ingress, а вместо этого используем IP кластера. Прилагаю мой файл пользовательских значений, который переписывает некоторые из значений по умолчанию. В настоящее время я использую последний график и значения из репозитория harbor-helm на GitHub. Несколько человек указали на свойство externalUrl, и я пытался установить его так, как указано в документации для clusterIP, но я также пробовал его как localhost:8082, так как это был порт, на который я проксировал. Посмотрите ниже строку ошибки в логах: 127.0.0.1 – – [10/Nov/2024:00:16:58 +0000] “POST /c/login HTTP/1.1” 405 559 “http://localhost:8082/account/sign-in?redirect_url=%2Fharbor%2Fprojects” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/130.0.0.0 Safari/537.36” (отредактировано)

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

Ниже также изображение, показывающее ошибку: введите описание изображения здесь

Любая помощь, чтобы просто заставить это работать с порт-прокси, будет очень признательна, так как я потратил вчера весь день, пытаясь это уладить.

Ответ или решение

Ошибка 405 "Method Not Allowed" при входе в Harbor Registry

Ошибка 405 "Method Not Allowed", возникающая при попытке входа в Harbor Registry, может быть результатом различных проблем, особенно когда вы настраиваете систему для работы с ClusterIP, без использования Ingress. Давайте подробно рассмотреть потенциальные причины и дать рекомендации по устранению этой проблемы.

1. Понимание ошибки

Ошибка 405 указывает на то, что веб-сервер понимает HTTP-метод, который используется в запросе, но не поддерживает его для запрашиваемого ресурса. В вашем случае это происходит при попытке выполнить POST запрос на URL /c/login.

2. Проверка конфигурации

Вы упомянули, что используете пользовательский файл значений, который изменяет значения по умолчанию. Обратите внимание на несколько ключевых параметров, которые могут влиять на вашу конфигурацию:

  • externalUrl: Убедитесь, что этот параметр правильно настроен. Если ваш Harbor работает на ClusterIP, настройте externalUrl на адрес, который будет доступен за пределами кластера. Например, если вы используете localhost с port-forward, то следовало бы указать что-то вроде http://localhost:8082. Обратите внимание, что использование localhost в настройках может привести к некорректной работе, если запрос идет из браузера, так как браузер не сможет правильно направить его на внутренний IP-адрес.

  • Service Type: Проверьте, что у вас настроен тип сервиса как ClusterIP.

3. Настройка Helm Chart

При развертывании Harbor через Helm Chart, важно убедиться, что другие параметры сервиса не противоречат вашим намерениям использовать только ClusterIP. Убедитесь, что у вас нет конфигураций, связанных с Ingress:

ingress:
  enabled: false

Также проверьте, что порты, которые вы используете, правильно настроены в ваших значениях. Пример:

service:
  type: ClusterIP
  port: 8080

4. Логи и отладка

Просмотрите логи вашего Harbor контейнера, чтобы найти более подробную информацию о причине ошибки. Обратите внимание на ошибки, связанные с аутентификацией или маршрутизацией запросов. Используйте команду:

kubectl logs <имя-pod>

Также можно выполнить базовую проверку состояния сервиса и его доступности:

kubectl get svc
kubectl describe svc <имя-сервиса>

5. Test Query

Попробуйте выполнить тестовый curl запрос к вашему сервису через port-forward:

kubectl port-forward svc/harbor 8082:80

Затем выполните:

curl -X POST http://localhost:8082/c/login -d 'username=admin&password=Harbor12345'

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

6. Общие рекомендации

  • Проверьте наличие обновлений для Helm Chart, так как они могут содержать исправления ошибок.
  • Перезапустите Pods, если изменения в конфигурации были внесены. Это может автоматически обновить конфигурацию сервиса.
  • Обратитесь к официальной документации Harbor для дополнительной информации и примеров конфигурации.

Следуя этим рекомендациям, вы сможете устранить ошибку 405 и успешно зарегистрироваться в вашем Harbor Registry. Если проблема сохраняется, возможно, стоит обратиться за помощью в сообщество разработчиков Harbor или на соответствующие форумы.

Оцените материал
Добавить комментарий

Капча загружается...