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"