Не удалось перечислить * v1alpha1.Order: orders.certmanager.k8s.io запрещено - PullRequest
0 голосов
/ 02 декабря 2018

Я настроил автоматическое управление сертификатами SSL несколько месяцев назад, как описано здесь: http://docs.cert -manager.io / en / latest / tutorials / acme / dns-validation.html для доменов: <myhost>.com иdev.<myhost>.com.Итак, у меня есть два пространства имен: prod для <myhost>.com и dev для dev.<myhost>.com.В каждом пространстве имен у меня есть входной контроллер и Certificate ресурс для хранения сертификата в секрете.Он работает нормально и ClusterIssuer автоматически обновляет сертификаты.

Но несколько дней назад я попытался добавить новый домен: test.<myhost>.com в test пространство имен с абсолютно такой же конфигурацией входа и сертификата, как в prod илиdev пространство имен (ожидаемое имя хоста и пространство имен):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
    kubernetes.io/tls-acme: 'true'
  name: app-ingress
  namespace: test
spec:
  tls:
  - hosts:
    - test.<myhost>.com
    secretName: letsencrypt-tls
  rules:
    - host: test.<myhost>.com
      http:
        paths:
        - backend:
            serviceName: web
            servicePort: 80
          path: /
---
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: cert-letsencrypt
  namespace: test
spec:
  secretName: letsencrypt-tls
  issuerRef:
    name: letsencrypt-prod-dns
    kind: ClusterIssuer
  commonName: 'test.<myhost>.com'
  dnsNames:
  - test.<myhost>.com
  acme:
    config:
    - dns01:
        provider: dns
      domains:
      - test.<myhost>.com

, и эта конфигурация не работает: сертификат не может быть найден в секрете, вход использует "app-ingress-fake-Certificate". *Модуль 1021 *

cert-manager показывает много похожих ошибок:

pkg/client/informers/externalversions/factory.go:72: Failed to list *v1alpha1.Challenge: challenges.certmanager.k8s.io is forbidden: User "system:serviceaccount:kube-system:cert-manager" cannot list challenges.certmanager.k8s.io at the cluster scope
pkg/client/informers/externalversions/factory.go:72: Failed to list *v1alpha1.Order: orders.certmanager.k8s.io is forbidden: User "system:serviceaccount:kube-system:cert-manager" cannot list orders.certmanager.k8s.io at the cluster scope

и certificate не пытается получить сертификат (kubectl describe -ntest cert-letsencrypt):

API Version:  certmanager.k8s.io/v1alpha1
Kind:         Certificate
Metadata: ...
Spec:
  Acme:
    Config:
      Dns 01:
        Provider:  dns
      Domains:
        test.<myhost>.com
  Common Name:  test.<myhost>.com
  Dns Names:
    test.<myhost>.com
  Issuer Ref:
    Kind:       ClusterIssuer
    Name:       letsencrypt-prod-dns
  Secret Name:  letsencrypt-tls
Events:         <none>

Он должен иметь какой-либо статус в качестве сертификатов в других пространствах имен.

Я не могу понять, почему эта конфигурация работала раньше, но не может работать сейчас.

Я не уверен, что она связана, но яобновлен kubernetes с использованием Kops несколько недель назад, текущая версия:

Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"archive", BuildDate:"2018-10-12T16:56:06Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.6", GitCommit:"a21fdbd78dde8f5447f5f6c331f7eb6f80bd684e", GitTreeState:"clean", BuildDate:"2018-07-26T10:04:08Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

1 Ответ

0 голосов
/ 24 декабря 2018

Причиной этой проблемы было обновление Kubernetes со 1.9 до 1.10.Чтобы исправить это, вам необходимо обновить cert-manager до 0.5.x версии.

Возможно, не удастся обновить с 0.4.x до 0.5.x с использованием helm из-за ошибки https://github.com/jetstack/cert-manager/issues/1134в таком случае вам необходимо сохранить все конфигурации эмитентов и сертификатов, затем удалить cert-manager 0.4.x и установить 0.5.x, а затем применить все конфигурации эмитентов и сертификатов с первого шага.

...