CNCF 技术监督委员会(TOC)已经投票接受cert-manager[1]作为 CNCF 孵化项目。
cert-manager 是 Kubernetes 的一个插件,用于自动管理和颁发来自各种颁发来源的 TLS 证书,适用于云原生 Kubernetes 或 OpenShift 环境。它将持续确保证书是有效的和最新的,并尝试在到期前的适当时间续订证书。该机器身份对于使用 TLS 进行高度安全的加密数据通信至关重要。
由于云原生环境高度分散且自动化程度高,cert-manager 作为开源工具非常受开发人员的欢迎,它可以通过 TLS 加密保护云原生工作负载,并为集群提供关键的安全性。
cert-manager 还与许多其他 CNCF 项目保持一致,包括 Cilium、Knative、SPIRE、Isitio 和 Linkerd。
“用户和社区对我们的信任和支持让我们倍感荣幸。我们同样对 CNCF 的支持和认可感到谦卑,并相信达到孵化阶段是该项目的一个重要里程碑。cert-manager 维护者期待与 CNCF 合作,实现我们的目标,让信任和证书管理在云原生环境中更易实现。”——Joakim Ahrlin,Venafi 公司 Jetstack 的工程团队负责人兼 cert-manager 维护者。
“cert-manager 可能是你在 Kubernetes 集群上安装的第一批应用程序之一。cert-manager 维护者的目标是尽可能平稳地体验第一次体验,同时通过我们的配套组件(如 csi-driver 和 approver-policy)支持高级用例。”——Tim Ramlot,Jetstack 软件工程师兼 cert-manager 维护者。
“cert-manager 是 Kubernetes 环境中 X.509 证书的事实上的标准,”波音公司开源和云原生首席工程师 Ricardo Rocha 说。“由于 cert-manager 的灵活性,开发团队可以利用同一工具,在开发环境中利用自签名证书和在生产环境中利用由可信 CA 签名的证书。”
“处理证书是大多数云原生部署需要处理的任务,不能掉以轻心。”CERN 计算工程师 Ricardo Rocha 和 cert-manager 的 TOC 赞助者说:“cert-manager 的受欢迎程度和庞大的用户群表明它已经赢得了用户的信任,并已成为生态系统中不可或缺的一部分。随着该项目进入孵化阶段,我期待看到社区继续发展,并看到该项目与其他云原生工具进一步集成。”
主要组件:
- cert-manager 控制器:它允许用户创建由 K8s 秘密支持的证书,包含你的证书的密钥。它还允许你直接为入口资源创建这些秘密。
- csi-driver:cert-manager 包括一个CSI 驱动程序库[2],使用户能够轻松地构建定制的 CSI 驱动程序,将证书密钥对传递到 Kubernetes 中的 pod。cert-manager 还实现了几个 CSI 驱动程序,如csi-driver-spiffe[3],以及通用的csi-driver[4]。
- 发行者:cert-manager 与第三方证书提供商有许多发行者集成,包括 Let's Encrypt、Amazon Route53 和 Venafi。
- Approval API:该 API 是 cert-manager 中批准或拒绝证书请求的一种机制。这个 API 的决策可以自动化,就像approver-policy[5]的情况一样,它是一个基于 CRD 的策略控制器。
- trust-manager:作为该团队改进 Kubernetes 中信任分布计划的一部分,trust-manager 是一个早期项目,旨在帮助用户跨集群分布 CA 包。
显著的里程碑:
- GitHub Stars:9.4k
- 合并的拉取请求:2057
- 关闭的问题:2531
- 贡献者:300 多名
- 发布:136
- Slack 成员:7k 名
“cert-manager 项目是一项了不起的工程,降低了 Kubernetes 和云原生生态系统获得安全证书的障碍。我们期待着支持不断增长的社区,并增加采用者的数量,”云计算原生计算基金会首席技术官 Chris Aniszczyk 说。
cert-manager 不断增加对上游 Kubernetes 增强功能的支持,包括网关 API、CSR API 和 Trust Anchor Sets,并且自 2020 年加入 CNCF 沙箱以来取得了重大进展,包括:
- istio-csr[6]使用户能够使用 cert-manager 为 istiod 和 sidecars 颁发证书
- 引进了带有漏洞报告说明的 cert-manager安全策略[7]
- cert-manager 在 1.0 版进入沙箱阶段,从那时起,已经发布了 10 个次要版本,到 1.10 版
- 增加了对Kubernetes Gateway API[8]的实验性 cert-manager 支持
- 将 cert-manager 从 GitHub 发起组织迁移到 cert-manager 自己的组织
- 参加了谷歌代码之夏[9]的一个项目[10],以简化 cert-manager 的安装
- 供应链安全:为容器和 helm charts 添加签名[11]
- 于 2022-04-13 启动https://cert-manager.io/网站更新
- 维护者[12]的数量从 3 人增加到 9 人
- 进入沙箱的时候,cert-manager 镜像的下载量约为 2M,目前已缓慢下降至约 1.7M,但我们认为这与镜像缓存和 docker hubs 定价模式的变化有关
- 用户研究给这个项目 99%支持率
- 自从进入沙箱以来,文档网站[13]的访问者已经翻了一番,从平均每天 1000 个网站访问者增加到 2000 个,这是一个比镜像下载更好的采纳率信号。
该团队还在改善 cert-manager 的可扩展性和用户 开发者体验,并致力于缩小 cert-manager 的核心,以降低部署复杂性、二进制文件大小、攻击面和镜像大小。
关于路线图的更多信息可以在这里[14]找到。
作为 CNCF 托管的项目,cert-manager 是与其技术利益一致的中立基金会的一部分,也是更大的 Linux 基金会的一部分,该基金会提供治理、营销支持和社区拓展。关于每个级别的成熟度要求的更多信息,请访问CNCF 毕业标准[15]。
参考资料
[1]
cert-manager: https://cert-manager.io/
[2]
CSI 驱动程序库: https://github.com/cert-manager/csi-lib
[3]
csi-driver-spiffe: https://github.com/cert-manager/csi-driver-spiffe
[4]
csi-driver: https://github.com/cert-manager/csi-driver
[5]
approver-policy: https://github.com/cert-manager/approver-policy
[6]
istio-csr: https://github.com/cert-manager/istio-csr
[7]
安全策略: https://github.com/cert-manager/cert-manager/blob/master/SECURITY.md
[8]
Kubernetes Gateway API: https://gateway-api.sigs.k8s.io/
[9]
谷歌代码之夏: https://summerofcode.withgoogle.com/archive/2021/projects/5686178510012416
[10]
项目: https://gist.github.com/inteon/9dce2403c6946e423c9076b90b195c62
[11]
签名: https://github.com/cert-manager/cert-manager/issues/4473
[12]
维护者: https://github.com/cert-manager/cert-manager/blob/master/OWNERS
[13]
文档网站: https://cert-manager.io/docs/
[14]
路线图: https://github.com/cert-manager/cert-manager/blob/master/ROADMAP.md
[15]
CNCF 毕业标准: https://github.com/cncf/toc/blob/main/process/graduation_criteria.md