ZBLOG

使用cert-manager给argocd签发证书,怎么配置?

要为ArgoCD签发证书,您需要按照以下步骤进行配置:

  1. 安装和配置Cert-Manager。您可以在这里找到安装指南:https://cert-manager.io/docs/installation/kubernetes/

  2. 创建用于签发证书的ClusterIssuer或Issuer资源。例如,下面是一个ClusterIssuer的示例:

   apiVersion: cert-manager.io/v1alpha2
   kind: ClusterIssuer
   metadata:
     name: letsencrypt-prod
   spec:
     acme:
       server: https://acme-v02.api.letsencrypt.org/directory
       email: <your-email-address>
       privateKeySecretRef:
         name: letsencrypt-prod
       solvers:
         - http01:
             ingress:
               class: nginx
  1. 创建证书资源,定义名称、命名空间和要签发证书的域名列表。下面是一个证书资源的示例:
   apiVersion: cert-manager.io/v1alpha2
   kind: Certificate
   metadata:
     name: argocd-tls-certificate
     namespace: argocd
   spec:
     secretName: argocd-tls-secret # 用于存储密钥和证书的 Secret 名称。
     duration: 2160h # 证书有效期限,默认是 90 天。
     renewBefore: 360h # 在证书过期前多少时间开始自动更新,默认值是 30 天。
     commonName: argocd.example.com # 主机名或 IP 地址列表中使用的常见名称。
     dnsNames:
       - argocd.example.com # 希望签发证书的主机名列表。
     issuerRef:
       name: letsencrypt-prod # 要使用的 ClusterIssuer 或 Issuer 的名称。
       kind: ClusterIssuer
  1. 部署ArgoCD。确保您已按照官方指南部署了ArgoCD,并且有一个可公开访问的Ingress资源。

  2. 为ArgoCD Ingress资源添加TLS注释。下面是一个示例:

   apiVersion: networking.k8s.io/v1beta1
   kind: Ingress
   metadata:
     name: argocd-server-ingress
     namespace: argocd
     annotations:
       cert-manager.io/cluster-issuer: letsencrypt-prod # 指定用于签发证书的 ClusterIssuer 或 Issuer 的名称。
       nginx.ingress.kubernetes.io/ssl-redirect: "true" # 强制所有HTTP请求重定向到HTTPS。
       nginx.ingress.kubernetes.io/backend-protocol: "HTTPS" # 后端使用 HTTPS 协议通信。
   spec:
     tls:
       - hosts:
           - argocd.example.com # 所需 TLS 证书中包含的主机名列表。
         secretName: argocd-tls-secret # 存储证书和密钥的 Secret 名称,必须与 Certificate 中定义的一致。
     rules:
       - host: argocd.example.com # ArgoCD 可公开访问的主机名或 IP 地址。
         http:
           paths:
             - backend:
                 serviceName: argocd-server-service # 在后台运行 ArgoCD API 的 Service 的名称。
                 servicePort: https # ArgoCD API 使用的端口。
  1. 等待证书签发。Cert-Manager会自动处理证书签发,您可以使用以下命令检查证书的状态:
   kubectl describe certificate argocd-tls-certificate -n argocd

一旦证书签发完成,ArgoCD将能够使用TLS加密与客户端进行安全通信。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=3394

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?