kubectl 获取证书:使用证书管理器找不到资源

kubectl get certificates : No resources found using cert-manager

我不明白为什么我无法使用 cert-manager

在 K8S 上获取证书

但是当我尝试获取证书时,我得到 'no resources found'

有什么想法吗?

感谢您的帮助

cert-manager 不会自动创建证书。 您必须自己创建一个 YAML。并使用您已经创建的发行人名称

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: my-certificate
  namespace: default
spec:
  secretName: set-a-new-name-here
  issuerRef:
    name: letsencrypt-staging
    kind: ClusterIssuer
  commonName: mytest.example.fr
  dnsNames:
    - mytest.example.fr

如果您不想创建种类证书,您可以使用

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: cluster-issuer-name
  namespace: development
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: harsh@example.com
    privateKeySecretRef:
      name: secret-name
    solvers:
    - http01:
        ingress:
          class: nginx-class-name
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx-class-name
    cert-manager.io/cluster-issuer: cluster-issuer-name
    nginx.ingress.kubernetes.io/rewrite-target: /
  name: example-ingress
spec:
  rules:
  - host: sub.example.com
    http:
      .
      . #Path and service configs
      .
      .
  tls:
  - hosts:
    - sub.example.com
    secretName: secret-name

ingress 会调用 clusterisser 并且它会 auto-create certificate 给你.

如果您是更高版本 1.18above[,请根据需要更新 ingress 资源=13=]

备注

  • 请确保您在 clusterissue 中使用 URL https://acme-v02.api.letsencrypt.org/directory 否则您将在浏览器中获得 fake 证书。

  • 作为参考,您可以在此处阅读更多内容:

  • 确保你的入口指向正确的 clusterissuer 如果 你创建了新的。

  • 也不要使用相同的 privateKeySecretRef:name: secret-name 你 需要删除它或使用 new name 作为 fake certificate 现在存储在那个秘密中。