1

我正在尝试部署“kube-lego”的继任者“cert-manager”(https://github.com/jetstack/cert-manager)项目。我发现证书与正在创建的证书不匹配,我想知道之前是否有人尝试过。

我正在使用“monitoring-xxx-com”创建一个 tls secretName,并且在 ingress-nginx 日志中我发现它正在尝试搜索 namespace/monitoring-xxx-com 而没有找到它所期望的。

我想知道这是否是因为 ingress-nginx 正在尝试自动使用 pods 命名空间,而 cert-manager 正在创建没有命名空间的证书,因此这就是永远找不到证书的原因。

error obtaining PEM from secret kube-system/monitoring-xxx-com: error 
retrieving secret kube-system/monitoring-xxx-com: secret kube-
system/monitoring-xxx-com was not found

并在“cert-manager”创建的证书中:

Issuer Ref:
  Kind:       ClusterIssuer
  Name:       letsencrypt-staging
Secret Name:  monitoring-xxx-com
4

1 回答 1

0

秘密和 nginx 入口控制器位于不同的命名空间中,有一个选项可以在其中设置来自另一个命名空间的证书。

https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/cli-arguments.md

--default-ssl-certificate string    Name of the secret
    that contains a SSL certificate to be used as default for a HTTPS catch-all server.
    Takes the form <namespace>/<secret name>.

要查找您的秘密的名称空间:

kubectl describe secrets/monitoring-xxx-com

在部署模板中使用 default-ssl-certificate

spec: 
  template: 
    spec: 
      containers: 
        - args: 
            - /nginx-ingress-controller
            - "--default-backend-service=$(POD_NAMESPACE)/default-http-backend"
            - "--default-ssl-certificate=$(POD_NAMESPACE)/tls-certificate"
于 2018-02-25T17:45:44.447 回答