Cert-менеджер терпит неудачу на kubernetes с webhooks - PullRequest
1 голос
/ 25 июня 2019

Я следую инструкциям по установке Kubernetes для Helm: https://docs.cert -manager.io / ru / latest / Getting-Start / Install / kubernetes.html С Cert-manager v0.81 на K8v1.15, Ubuntu 18.04 на месте.Когда я приступаю к тестированию установки, я получаю следующие ошибки:

error when creating "test-resources.yaml": Internal error occurred: failed calling webhook "issuers.admission.certmanager.k8s.io": the server is currently unable to handle the request
Error from server (InternalError): error when creating "test-resources.yaml": Internal error occurred: failed calling webhook "certificates.admission.certmanager.k8s.io": the server is currently unable to handle the request

Если я применяю test-resources.yaml перед установкой с Helm, я не получаю ошибки, но она все еще не работает.Эти ошибки являются новыми для меня, поскольку Cert-manager работал для меня на моей предыдущей установке около месяца назад, следуя той же инструкции по установке.Я пробовал использовать Cert-Manager 0.72 (CRD 0.7), а также думаю, что это была последняя версия, которую мне удалось установить, но она тоже не работает.

Что означают эти ошибки?

Обновление : Оказалось, что это внутренняя проблема CoreDNS в моем кластере.Как-то не настроен правильно.Возможно связано с неправильной конфигурацией POD_CIDR.

Ответы [ 2 ]

1 голос
/ 07 июля 2019

Если у вас возникла эта проблема, проверьте журналы CoreDNS (или KubeDNS), и вы можете увидеть множество ошибок, связанных с обращением в службы. К сожалению, у меня больше нет ошибок. Но так я понял, что мои настройки сети были неверными.

Я использую Calico (будет применяться и для других сетей), и его сеть не была настроена так же, как сеть POD_CIDR, с которой я инициализировал свои Kubernetes.

Пример 1. Настройте K8:

kubeadm init --pod-network-cidr=10.244.0.0/16
  1. Настройка Calico.yaml:

    - name: CALICO_IPV4POOL_CIDR
      value: "10.244.0.0/16"
    
0 голосов
/ 28 июня 2019

Я также попробовал cert-manager v0.8.0 очень похожую настройку на Ubuntu 18.04 и k8s v1.14.1, и я начал получать ту же ошибку, когда я сорвал cert-manager с помощью kubectl delete и переустановил его, после возникновения некоторых проблем с сетью на кластере.

Я наткнулся на решение , которое сработало. На главном узле просто перезапустите контейнер apiserver:

$ sudo docker ps -a | grep apiserver
af99f816c7ec        gcr.io/google_containers/kube-apiserver@sha256:53b987e5a2932bdaff88497081b488e3b56af5b6a14891895b08703129477d85               "/bin/sh -c '/usr/loc"   15 months ago       Up 19 hours                                     k8s_kube-apiserver_kube-apiserver-ip-xxxxxc_0
40f3a18050c3        gcr.io/google_containers/pause-amd64:3.0                                                                                      "/pause"                 15 months ago       Up 15 months                                    k8s_POD_kube-apiserver-ip-xxxc_0
$ sudo docker restart af99f816c7ec
af99f816c7ec
$ 

Затем попробуйте применить test-resources.yaml снова:

$ kubectl apply -f test-resources.yaml
namespace/cert-manager-test unchanged
issuer.certmanager.k8s.io/test-selfsigned created
certificate.certmanager.k8s.io/selfsigned-cert created

Если это не сработает, в этом выпуске github упоминается, что мастер-узлу могут потребоваться правила брандмауэра для доступа к модулю cert-manager-webhook. Точные действия будут зависеть от того, на какой облачной платформе вы находитесь.

...