Рейтинг:0

Kubernetes Nginx Ingress не удалось загрузить собственный сертификат из диспетчера сертификатов

флаг jp

Я использую сертификат-менеджер с этим пользовательским подстановочным сертификатом

apiVersion: cert-manager.io/v1
вид: ClusterIssuer
метаданные:
  имя: letsencrypt-myapp-эмитент
спецификация:
  акме:
    сервер: https://acme-v02.api.letsencrypt.org/directory
    электронная почта: [email protected] # ИЗМЕНИТЬ-МЕНЯ
    privateKeySecretRef:
      имя: wildcard-myapp-com
    решатели:
      # Конфигурации провайдера ACME DNS-01
      - днс01:
          облачный DNS:
            serviceAccountSecretRef:
              имя: clouddns-сервис-аккаунт
              ключ: dns-service-account.json
            проект: мое приложение
        селектор:
          DNSИмена:
            - '*.myapp.com'
            - myapp.com
---
apiVersion: cert-manager.io/v1
вид: сертификат
метаданные:
  имя: myapp-com-tls
  пространство имен: по умолчанию
спецификация:
  secretName: myapp-com-tls
  эмитентСсылка:
    имя: letsencrypt-myapp-эмитент
  общее имя: '*.myapp.com'
  DNSИмена:
    - '*.myapp.com'
    - myapp.com

Я развертываю вход Nginx с помощью kustomize

спецификация:
  шаблон:
    спецификация:
      контейнеры:
      - имя: контроллер
        аргументы:
        - /nginx-вход-контроллер
        --publish-service=$(POD_NAMESPACE)/вход-nginx-контроллер
        --election-id=вход-контроллер-лидер
        --controller-class=k8s.io/ingress-nginx
        --ingress-класс=nginx
        --configmap=$(POD_NAMESPACE)/вход-nginx-контроллер
        --validating-webhook=:8443
        --validating-webhook-certificate=/usr/local/сертификаты/сертификат
        --validating-webhook-key=/usr/local/сертификаты/ключ
        --default-ssl-certificate=default/myapp-com-tls # ЗАМЕТЬТЕ ЭТУ СТРОКУ

Когда я открываю журналы входного контроллера, я вижу эту ошибку.

Ошибка при загрузке пользовательского сертификата по умолчанию, откат для создания «локальный сертификат SSL по умолчанию/myapp-com-tls не найден».

Что я могу сделать, чтобы устранить эту проблему?

ОБНОВИТЬ

Если я побегу

kubectl получить секрет myapp-com-tls --namespace по умолчанию

Ничего не возвращает. Однако, если я бегу

kubectl получить секрет myapp.com-tls-qpmpr --namespace по умолчанию

Он возвращается

ИМЯ ТИП ДАННЫЕ ВОЗРАСТ
myapp.com-tls-qpmpr Непрозрачный 1 47 м

Однако, если я перейду на это в YAML, я получу ту же ошибку

--default-ssl-certificate=default/myapp.com-tls-qpmpr
$ kubectl описать сертификаты myapp-com-tls -n cert-manager
Ошибка сервера (NotFound): certificates.cert-manager.io "myapp-com-tls" не найден
флаг in
(a) вы действительно смотрели на `kubectl -n default get secret`, чтобы убедиться, что он там есть? (b) имейте в виду, что диспетчеру сертификатов требуется ненулевое время для разрешения цикла запроса LE, поэтому вы можете столкнуться с состоянием гонки
Rodrigo avatar
флаг jp
Я обновил свой вопрос. Не могли бы вы проверить еще раз?
флаг in
Этот секрет, имеющий только 1 датум, пахнет подозрительно, вы проверили, что в нем? У TLS обычно есть ключ и сертификат
Rodrigo avatar
флаг jp
В секрете только ключ, сертификат отсутствует

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.