Сертификат Kubernetes не создается для cert-менеджера - PullRequest
0 голосов
/ 09 ноября 2019

Я не могу создать сертификат с помощью cert-manager.

Я следую этому руководству https://docs.cert -manager.io / en / latest / Getting-Start / Install / kubernetes.html

Это работает:

antonswanevelder$ kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-69b4f77ffc-4296b              1/1     Running   0          9m5s
cert-manager-cainjector-576978ffc8-2mxz6   1/1     Running   0          2d13h
cert-manager-webhook-c67fbc858-sdjff       1/1     Running   1          2d13h

Но запуск теста

kubectl describe certificate -n cert-manager-test

Ничего не дает.

Любые идеи, как я могу устранить эту проблему

1 Ответ

1 голос
/ 11 ноября 2019

Воссоздание кластера 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
...