Cert-manager在带有Webhooks的kubernetes上失败

时间:2019-06-25 15:46:05

标签: kubernetes kubernetes-helm cert-manager

我正在按照Kubernetes的Helm安装说明进行操作:https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html 在K8 v1.15上使用Cert-manager v0.81,可在本地安装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

如果在使用Helm进行安装之前应用了test-resources.yaml,则不会出现错误,但仍无法正常工作。 这些错误对我来说是新的,因为Cert-manager大约一个月前曾按照相同的安装说明为我在上一次安装中为我工作。 我已经尝试过使用Cert-Manager 0.72(CRD 0.7),并且我认为这是我设法安装的最后一个版本,但也无法正常工作。

这些错误是什么意思?

更新:事实证明,这是我的群集上的内部CoreDNS问题。不知何故未正确配置。可能与POD_CIDR配置错误有关。

2 个答案:

答案 0 :(得分:1)

如果遇到此问题,请检查CoreDNS(或KubeDNS)的日志,您可能会看到许多与联系服务有关的错误。不幸的是,我不再有错误。 但这就是我发现我的网络设置无效的方式。

我正在使用Calico(也将适用于其他网络),并且其网络未设置为与我用来初始化Kubernetes的POD_CIDR网络相同的网络。

示例 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"
    

答案 1 :(得分:0)

我还在cert-manager v0.8.0和k8s Ubuntu 18.04上尝试了v1.14.1一个非常相似的设置,当我使用{{1}拆下cert-manager时,我开始遇到相同的错误。 },并在群集上遇到一些网络问题后重新安装。

我偶然发现a solution有效。在主节点上,只需重新启动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

如果这不起作用,this github issue提到主节点可能需要防火墙规则才能到达$ 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 吊舱。确切的步骤将取决于您所使用的云平台。