「KUBERNETES-ADDONS」- cert-manager

  CREATED BY JENKINSBOT

以前,我们使用 ACME 脚本来申请 Let’s Encrypt 证书,享受着免费证书和脚本自动化的便利,部署 HTTPS 是那么简单。现在,我们切换到 Kubernetes 环境后,我们该怎样处理呢?最简单最直接的方法就是继续使用 ACME 申请证书,然后使用这个证书创建 Secret 对象,最后在 Ingress 中应用该 Secret 对象。但是 Let’s Encrypt 证书三个月到期,届时我们则需要继续证书续期,然后更新 Secret 信息,这绝对是项繁琐且易失误的工作。

我们能够将 ACME 搬到 Kubernetes 集群中,实现证书的管理。但是现在已有 cert-manager 组件,它将负责完成证书申请、自动续期等等系列任务,让我们从繁琐的工作中解脱出来。

该部分笔记将记录:在 Kubernetes 中,如何使用 Cert Manager 来管理 Let’s Encrypt 证书,以及相关问题的处理方法。

功能特性

1)简化证书管理,实现证书申请与自动化需其;
2)具有与多个证书颁发机构(CA)进行交互的标准化 API;
3)证书的管理更加安全;
4)支持 ACME(Let’s Encrypt),HashiCorp Vault,Venafi,自签名,内部 CA;
5)可扩展以支持其他 CA;

应用场景

1)在 Ingress 中,自动申请证书,以提供 HTTPS 连接:Securing Ingress Resources

补充说明

kube-cert-manager 与 kube-lego 是相同的项目,但是现在都处于维护模式,推荐使用 cert-manager 项目。

参考文献

Welcome to cert-manager
PalmStoneGames/kube-cert-manager: Manage Lets Encrypt certificates for a Kubernetes cluster.
jetstack/kube-lego: DEPRECATED: Automatically request certificates for Kubernetes Ingress resources from Let’s Encrypt

章节列表

「Kubernetes」- 部署 cert-manager 组件(v1.5)
「Kubernetes」- 部署 cert-manager 组件(v1.7)
「cert-manager」- 概念及架构
「cert-manager」- 常见问题处理及常用操作
「Kubernetes」- 在 Ingress 中,使用 cert-manager 证书