Я выполнил эту инструкцию, чтобы настроить диспетчер сертификатов в моем кластере EKS https://cert-manager.io/docs/tutorials/acme/ingress/.
вот мой вход
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/issuer: "letsencrypt-staging"
spec:
tls:
- hosts:
- '*.test.com'
secretName: test-tls
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: test-service
port:
number: 80
Вот эмитент. Просто скопировал конфиг из инструкции
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-staging
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: [email protected]
privateKeySecretRef:
name: letsencrypt-staging
solvers:
- http01:
ingress:
class: nginx
После развертывания я обнаружил, что состояние готовности сертификата неверно.
kubectl get certificate
NAME READY SECRET AGE
test-tls False test-tls 2m45s
Затем я выполнил это, чтобы устранить неполадки https://cert-manager.io/docs/faq/troubleshooting/
Я запустил kubectl describe certificaterequest <request name>
, обнаружил ошибку Waiting on certificate issuance from order test-tls-xxx: "pending"
затем запустил kubectl describe order test-tls-xxx
, обнаружил ошибку Warning Solver 20m cert-manager Failed to determine a valid solver configuration for the set of domains on the Order: no configured challenge solvers can be used for this challenge
.
Есть идеи, почему он не может определить действительный решатель? как проверить, работает ли решатель?