Использование SecretProviderClass с базовой аутентификацией Ingress

Я пытаюсь настроить базовую аутентификацию на входе. «nginx.ingress.kubernetes.io/auth-secret», который я сохранил в секретах K8s, используя SecretProviderClass. Секрет смонтирован правильно. Согласно этой документации (https://kubernetes.github.io/ingress-nginx/examples/auth/basic/), внутри ключа секрет должен содержать «data.auth». Следовательно, в моем файле развертывания я создал переменную среды с именем «BASIC_AUTH_VALUE», чтобы добиться этого.

env:
        - name: SECRET_AUTH
          valueFrom:
            secretKeyRef:
              name: {{ include "ui.fullname" . }}-azure-csi
              key: FRONTEND_BASIC_AUTH
              optional: false
        - name: BASIC_AUTH_VALUE
          value: data.auth:$(SECRET_AUTH)

Затем в моем входном файле я установил аннотации, как показано ниже.

nginx.ingress.kubernetes.io/auth-secret: BASIC_AUTH_VALUE

Даже тогда я все еще получаю ошибку 503. Модуль запущен и работает, и в журналах я ничего не могу найти.

Я пробовал несколько вариантов, но пока все тщетно. Любое руководство будет большим подспорьем. Спасибо.

Убедитесь, что имя переменной среды и имя аннотации совпадают, иначе аннотация не будет применена правильно. Вы можете попробовать, как показано ниже: nginx.ingress.kubernetes.io/auth-secret: SECRET_AUTH

Hemanth Kumar 01.02.2023 13:10

Благодарю за ваш ответ. В моем случае правильной переменной среды является «BASIC_AUTH_VALUE», поскольку я создаю ее, добавляя «data.auth:» к переменной env SECRET_AUTH. Еще одна проблема заключается в том, что я не вижу никаких журналов от nginx. Это затрудняет отладку.

Trupti 01.02.2023 14:00

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

Hemanth Kumar 02.02.2023 12:03
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
3
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел решение. Мне пришлось адаптировать секретные объекты SecretProviderClass, как показано ниже.

secretObjects:
  - data:
    {{- range $secret := .Values.azureSecretsCSI.secrets }}
    - key: {{ $secret.k8sName }}
      objectName: {{ $secret.azName }}
    {{- end }}
    secretName: {{ include "ui.fullname" . }}-auth-azure-csi
    type: Opaque

Где «{{ $secret.k8sName }}» должно быть «auth», получено из файла values.yaml, как показано ниже.

azureSecretsCSI:
  tenantId: XXX
  kvName: XXX
  secrets: 
    - azName: XXX
      k8sName: auth

А затем в аннотациях входа добавьте имя класса секретного провайдера вместо секретного имени или переменной среды (что я пытался сделать и что не работало)

nginx.ingress.kubernetes.io/auth-secret: {{ include "ui.fullname" . }}-auth-azure-csi

Другие вопросы по теме

Как использовать nginx (установлен в Docker) для обратного прокси-сервера MySQL (также установлен в Docker)
Контроллеру входящего трафика AKS Ingress-Nginx не удается выполнить маршрутизацию по узлу
Как правильно настроить статический IP-адрес кластера AKS, балансировщик нагрузки и контроллер входящего трафика?
Контроллер Kubernetes nginx: избегайте загрузки ресурсов (css, js и т. д.) через перенаправление 302 на https в браузере
Как использовать nginx (установлен на докере) обратный прокси-сервер gitlab (также установлен на докере)
Логин laravel не работает с предоставленными учетными данными в производстве. На самом деле он ничего не возвращает и снова перенаправляет на страницу входа
Корс в конденсаторе для андроида
Как настроить путь прокси-сервера nginx для использования статического содержимого определенной папки корзины s3?
502/503/404 Ошибка http: GKE ingress-nginx обслуживает трафик к неправильным службам из других пространств имен
Проверяйте токен jwt с помощью openresty lua-nginx-module каждый запрос