Рейтинг:1

Просроченные сертификаты Kubernetes Cert-Manager

флаг si

Я унаследовал среду GKE Kubernetes и пытался понять это в течение нескольких дней, но, к сожалению, просто не знаю, что делать дальше.

Кластер настроен на использование cert-manager (устанавливается через helm) для применения сертификатов Let's Encrypt к кластеру. По какой-то причине это отлично работало более двух лет, но начиная с 16 апреля я начал видеть предупреждения SSL в браузерах для всех заметок в кластере.

Когда я бегу kubectl описывает сертификаты site-cloud-tls сертификат, похоже, обновлен, но не применяется к входящему трафику.

Имя: site-cloud-tls
Пространство имен: cs
Ярлыки: <нет>
Аннотации: <нет>
Версия API: certmanager.k8s.io/v1alpha1
Вид: Сертификат
Метаданные:
  Отметка времени создания: 2019-06-02T09:55:05Z
  Поколение: 34
  Рекомендации владельца:
    Версия API: extensions/v1beta1
    Удаление владельца блока: правда
    Контроллер: правда
    Вид: Вход
    Имя: cs-nginx
    UID: 7f312326-851c-11e9-8bf0-4201ac10000c
  Версия ресурса: 541365011
  UID: 7f36cc40-851c-11e9-8bf0-4201ac10000c
Спецификация:
  DNS-имена:
    site.cloud (имя изменено, но верно)
  Исх. эмитента:
    Тип: ClusterIssuer
    Имя: letsencrypt-dns
  Секретное имя: site-cloud-tls
Положение дел:
  Условия:
    Время последнего перехода: 2022-04-24T05:26:13Z
    Сообщение: Сертификат актуален и не истек
    Причина: Готов
    Статус: Верно
    Тип: Готовый
  Не после: 2022-06-15T17:01:48Z
События: <нет>
kubectl описать вход
Имя: cs-nginx
Пространство имен: cs
Адрес: 192.168.1.32
Серверная часть по умолчанию: default-http-backend:80 (10.16.3.12:8080)
TLS:
  site-cloud-tls завершает работу site.cloud (имя изменено, но кажется правильным)
Правила:
  Серверные части пути к хосту
  ---- ---- --------
  site.cloud   
                             /сайт:8080 (10.10.10.10:8080)

Аннотации: certmanager.k8s.io/cluster-issuer: letsencrypt-dns
                             kubernetes.io/ingress.class: nginx
                             nginx.ingress.kubernetes.io/ssl-перенаправление: правда
                             nginx.org/websocket-services: концентратор данных
События: <нет>

У нас есть промежуточная среда, которая также была затронута. Я попытался переустановить cert-manager, переустановить nginx-ingress, но, к сожалению, не смог восстановить работоспособность (вероятно, из-за ошибки конфигурации, которую я сделал).

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

Спасибо!

Gabriel Robledo Ahumada avatar
флаг us
ответ был полезен?
Рейтинг:0
флаг us

Дело в том, что вы имеете в виду кластер-эмитент вид в вашем определении Ingress:

Аннотации: certmanager.k8s.io/cluster-issuer: letsencrypt-dns

Но объект, который вы определили, является Сертификат Добрый:

Имя: site-cloud-tls
Пространство имен: cs
Ярлыки: <нет>
Аннотации: <нет>
Версия API: certmanager.k8s.io/v1alpha1
Вид: сертификат

Именно поэтому он не применяется к Ingress. Что вам нужно, так это создать Эмитент ресурс в Kubernetes для обработки сертификата. Здесь вы можете найти пример базового АКМЕ КластерЭмитент файл манифеста:

apiVersion: cert-manager.io/v1
вид: ClusterIssuer
метаданные:
  имя: letsencrypt-staging
спецификация:
  акме:
    # Вы должны заменить этот адрес электронной почты на свой собственный.
    # Let's Encrypt будет использовать это, чтобы связаться с вами по поводу истечения срока действия
    # сертификаты и проблемы, связанные с вашей учетной записью.
    электронная почта: [email protected]
    сервер: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Секретный ресурс, который будет использоваться для хранения закрытого ключа учетной записи.
      имя: пример-ключ-аккаунта-эмитента
    # Добавьте один решатель задач, HTTP01, используя nginx
    решатели:
    - http01:
        вход:
          класс: nginx

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

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