Kubernetes/Ingress Nginx/ Сертификаты Cert Manger имеют пространства имен?

Я пытаюсь развернуть проект "cert-manager" ( https://github.com/jetstack/cert-manager), который является преемником "kube-lego", и я обнаружил, что сертификаты не соответствуют тому, что оно создается, и мне интересно, пробовал ли кто-нибудь еще это раньше.

Я создаю tls secretName с "monitor-xxx-com" и в журналах ingress-nginx обнаруживаю, что он пытается найти пространство имен / monitor-xxx-com и не находит то, что ожидает.

Мне интересно, потому что ingress-nginx пытается использовать пространство имен pods автоматически, а менеджер сертификатов создает сертификаты без пространства имен, поэтому этот сертификат никогда не может быть найден?

error obtaining PEM from secret kube-system/monitoring-xxx-com: error 
retrieving secret kube-system/monitoring-xxx-com: secret kube-
system/monitoring-xxx-com was not found

а в сертификате создан "сертификат-менеджер"

Issuer Ref:
  Kind:       ClusterIssuer
  Name:       letsencrypt-staging
Secret Name:  monitoring-xxx-com

1 ответ

Секрет и входной контроллер nginx находятся в другом пространстве имен, есть опция, в которой вы можете установить сертификат из другого пространства имен.

https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/cli-arguments.md

--default-ssl-certificate string    Name of the secret
    that contains a SSL certificate to be used as default for a HTTPS catch-all server.
    Takes the form <namespace>/<secret name>.

Чтобы найти пространство имен вашего секрета:

kubectl describe secrets/monitoring-xxx-com

Использование default-ssl-сертификата в шаблоне развертывания

spec: 
  template: 
    spec: 
      containers: 
        - args: 
            - /nginx-ingress-controller
            - "--default-backend-service=$(POD_NAMESPACE)/default-http-backend"
            - "--default-ssl-certificate=$(POD_NAMESPACE)/tls-certificate"
Другие вопросы по тегам