2

我已经为 SSL 证书安装了 cert-manager 0.12.0。

我的发行人文件是

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 Ingress Controller Fake Certificate”。

以下结果显示订单和挑战

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

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

如果您需要任何东西,请告诉我。提前致谢!

4

1 回答 1

1

问题在于为特定 pod 定义的 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

于 2020-02-03T11:49:55.827 回答