Kubernetes 中自动管理 TLS 证书:cert-manager 指南

Kubernetes 中自动管理 TLS 证书:cert-manager 指南

cert-managerCert-Manager 是一个开源的证书管理工具,用于自动管理 TLS 证书和密钥。 * 自动化管理 TLS 证书和密钥、支持多种证书提供商和云原生应用程序。 * 有什么特点:支持多种证书提供商和云原生应用程序、自动化管理 TLS 证书和密钥。项目地址:https://gitcode.com/gh_mirrors/ce/cert-manager

项目介绍

cert-manager 是一个 Kubernetes 的扩展,旨在自动化 TLS 证书的创建、续订及管理流程。它将证书和证书颁发者作为资源类型引入到 Kubernetes 集群中,支持从多种来源(包括 Let's Encrypt ACME、HashiCorp Vault、Venafi TPP/TLS Protect Cloud 和本地集群内发行)获取证书。cert-manager 确保证书持续有效并及时更新,以降低服务中断风险。

项目快速启动

安装 cert-manager

首先,确保你的 Kubernetes 集群已准备好。接下来,通过以下命令添加 cert-manager 的官方 Helm 库:

helm repo add jetstack https://charts.jetstack.io

然后,更新你的 Helm 图表仓库,并部署 cert-manager:

helm repo update
kubectl apply --validate=false -f https://raw.githubusercontent.com/cert-manager/cert-manager/release-1.8/deploy/manifests/00-crds.yaml
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace \
    --version v1.8.4 # 使用最新的稳定版本或者指定版本

创建第一个证书

假设你想为一个域名自动申请 Let's Encrypt 的证书,可以通过创建一个 Certificate 资源定义来实现:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: example-com-tls
spec:
  secretName: example-com-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
  - example.com

之后,使用 kubectl apply -f <your-certificate-yaml>.yaml 来创建这个证书。

应用案例与最佳实践

自动化 Ingress TLS 配置

对于基于 Ingress 的服务,你可以配置 cert-manager 来自动处理 TLS 证书的申请和关联。示例如下,在 Ingress 规则中引用上面创建的证书:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    kubernetes.io/tls-acme: "true"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - example.com
    secretName: example-com-tls
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: example-service
            port:
              number: 80

这样,当 Ingress 被创建或更新时,cert-manager 就会尝试为 example.com 获取 TLS 证书,并将其存储在指定的秘密中。

典型生态项目集成

cert-manager 在 Kubernetes 生态系统中的应用非常广泛,特别适合与支持 Kubernetes Ingress 的负载均衡器如 NGINX Ingress Controller 结合使用。通过整合 cert-manager,可以轻松实现在 Kubernetes 集群上运行的服务自动获得和更新安全证书。

当你在使用诸如 GitLab CI/CD、Jenkins 或其他CI/CD工具时,集成 cert-manager 可以自动化证书的生命周期管理,这对于持续交付流程尤其有用。此外,对于云原生应用,它与 Istio、Envoy 等服务网格的结合也非常紧密,帮助这些高级网络层实现加密通信的简便管理。

总之,cert-manager 是 Kubernetes 生态中不可或缺的一环,为现代云原生应用程序的安全通讯提供了强大而灵活的支持。

cert-managerCert-Manager 是一个开源的证书管理工具,用于自动管理 TLS 证书和密钥。 * 自动化管理 TLS 证书和密钥、支持多种证书提供商和云原生应用程序。 * 有什么特点:支持多种证书提供商和云原生应用程序、自动化管理 TLS 证书和密钥。项目地址:https://gitcode.com/gh_mirrors/ce/cert-manager

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

娄朋虎Imogene

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值