首页 文章

Kubernetes / Ingress Nginx / Cert Manager证书有命名空间吗?

提问于
浏览
1

我正在尝试部署"cert-manager"(https://github.com/jetstack/cert-manager)项目,该项目是"kube-lego"的继承者 . 我'm finding that the certificates don' t匹配正在创建的内容,我想知道是否有其他人之前尝试过这个 .

我正在使用“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

1 回答

  • 0

    secret和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"
    

相关问题