Воссоздание кластера K8s и выполнение шагов на странице cert-manager выше сработало. Одной из основных ошибок, которые я допустил, было обращение к неверному пространству имен в моем Ingress.
Обратите внимание на использование cert-manager.io/cluster-issuer
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# add an annotation indicating the issuer to use.
cert-manager.io/cluster-issuer: letsencrypt-prod
Также обратите внимание на небольшое изменениев apiVersion и solvers при использовании v11 cert-manager.
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# You must replace this email address with your own.
# Let's Encrypt will use this to contact you about expiring
# certificates, and issues related to your account.
email: youremail@domain.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
# Secret resource used to store the account's private key.
name: letsencrypt-prod
# Add a single challenge solver, HTTP01 using nginx
solvers:
- http01:
ingress:
class: nginx
Наконец, стоит отметить, что Lets-encrypt должен указывать на действительную страницу для обслуживания сертификата. Убедитесь, что ваш домен указан правильно и что страница обслуживается в корне этого домена. В продуктах есть ограничитель скорости, поэтому лучше всего работать с промежуточным издателем, пока не будет вручен сертификат. Если вы запустите приведенный ниже код, он должен показать CertificateCreated.
kubectl describe ingress