Kubernetes

帶有 Letsencrypt 的 Kubernetes 證書

  • September 29, 2021

我想用letsencrypt創建一個證書。

當我執行這個 yml

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
 name: grafana-tls
 namespace: grafana
type: "kubernetes.io/tls"
spec:
 secretName: grafana-tls
 issuerRef:
   name: letsencrypt-prod
 dnsNames:
    - mydomain.com

kubectl apply -f .\grafana-tls.yml --validate=false

我遇到了以下錯誤

未找到引用的“頒發者”:未找到 issuer.cert-manager.io “letsencrypt-prod”

但是當我執行時kubectl get clusterissuer ,我遇到了這個結果

姓名准備年齡

letencrypt-prod True 3d22h

為了部署集群發行者,我使用了這個配置

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
 name: letsencrypt-prod
 namespace: ingress-basic
spec:
 acme:
   server: https://acme-v02.api.letsencrypt.org/directory
   email: myEmail
   privateKeySecretRef:
     name: letsencrypt-prod
   solvers:
   - http01:
       ingress:
         class: nginx

根據這個github文件嘗試添加**種類:<ClusterIssuer | Issuer >**在 issueref 下,並確保 clusterissuer 和證書是在同一個命名空間中創建的。

apiVersion: cert-manager.io/v1
kind: Certificate
Metadata:
 name: grafana-tls
 namespace: grafana
type: "kubernetes.io/tls" 
spec: 
 secretName: grafana-tls
 issuerRef: 
   name: letsencrypt-prod 
   kind: &lt;ClusterIssuer | Issuer &gt; 
dnsNames: 
  - mydomain.com

有關更多資訊,請參閱類似問題。

引用自:https://serverfault.com/questions/1078911