Kubernetes:证书管理器证书处于待处理状态

时间:2020-02-03 08:01:12

标签: ssl kubernetes kubernetes-helm lets-encrypt cert-manager

我已安装SSL证书的cert-manager 0.12.0。

我的Issuer文件是

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: my@email.com
    privateKeySecretRef:
      name: letsencrypt-prod
    http01: {}

我的证书文件

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: tls-secret
spec:
  secretName: tls-secret-prod
  dnsNames:
  - mydomain.com
  acme:
    config:
    - http01:
        ingressClass: nginx
      domains:
      - mydomain.com
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer

入口配置为

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cms
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/tls-acme: "true"
spec:
  tls:
  - hosts:
    - mydomain.com
    secretName: tls-secret-prod
  rules:
  - host: mydomain.com
    http:
      paths:
      - backend:
          serviceName: apostrophe
          servicePort: 80
        path: /

但是,SSL证书仍然无效。通用名称是“ Kubernetes入口控制器伪造证书”。

以下显示订单和挑战的结果

kubectl get orders, challenges -o wide
NAME                                                  STATE     DOMAIN            REASON                                                                                                        AGE
challenge.certmanager.k8s.io/tls-secret-155743219-0   pending   mydomain.com   pods "cm-acme-http-solver-gk2zx" is forbidden: minimum cpu usage per Container is 100m, but request is 10m.   26m

我已经更新了资源限制范围并重新安装了带证书的cert-manager。我仍然收到此错误。 我不确定出什么问题或显示如何解决此问题。

请告诉我您是否需要任何东西。预先感谢!

1 个答案:

答案 0 :(得分:1)

问题在于为特定容器定义的CPU限制。 您必须在部署配置文件中更改最低CPU限制。如您所见,pod( cm-acme-http-solver )正在请求 100m CPU使用率,而为特定Pod定义的最低CPU使用率是* 10m **。因此,将部署配置文件中的CPU限制从 100m 更改为 10m 或更小,或者您还可以增加CPU请求。

在这里看看:cert-manager-kubernetespod-min-cpu-request

有用的文章:resources-limits-kubernetes