Keptn:云原生应用的持续交付控制平面

Keptn 是一个基于事件的控制平面,专为云原生应用的持续交付和自动化运维设计,目前在 GitHub 上获得了 1,777 个 Star。

正文顶部截图

Keptn 的核心定位是解决云原生环境下的交付难题。它通过事件驱动的方式,将部署、测试、验证等环节串联起来,实现自动化的发布流程。

这套工具基于 SLO(服务级别目标)进行自动化发布验证,可以集成到现有的 DevOps 工具链中,包括部署工具、测试框架和可观测性平台。

README区域截图

Keptn V1 已于 2023 年 12 月 22 日停止维护,官方推出了 Keptn Lifecycle Toolkit 作为替代方案。

Keptn Lifecycle Toolkit 是 Kubernetes 原生的实现方式,有两个核心特点:

  • Kubernetes 原生:没有外部依赖,所有配置都通过 CRD 管理
  • 无管道设计:可以与 ArgoCD、Flux、Jenkins、GitHub、GitLab、Harness 等任何交付工具配合使用,无需额外集成

安装方式

Keptn 运行在 Kubernetes 上。首先需要一个本地 K3d 集群:

curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | TAG=v5.3.0 bash
k3d cluster create mykeptn -p "8082:80@loadbalancer" --k3s-arg "--no-deploy=traefik@server:*"

然后安装 Keptn CLI:

curl -sL https://get.keptn.sh | bash

通过 Helm 安装 Keptn:

helm repo add keptn https://charts.keptn.sh && helm repo update
helm install keptn keptn/keptn \
-n keptn --create-namespace \
--wait \
--set=apiGatewayNginx.type=LoadBalancer

如果需要 jmeter-service 和 helm-service,可以额外安装:

helm install jmeter-service keptn/jmeter-service -n keptn
helm install helm-service keptn/helm-service -n keptn

容器镜像与安全

Keptn 的所有核心组件都提供容器镜像,托管在 GitHub Container Registry 和 Quay.io 上。从 0.19.0 版本开始,所有发布的容器镜像都使用 cosign 进行无密钥签名,通过短期代码签名证书、OIDC 和透明日志来保证镜像的完整性。

Helm Chart 同样支持签名验证,可以使用随每个版本发布的公钥进行校验。

版本兼容性

Keptn 的核心组件版本之间保持兼容。非核心组件和社区贡献的服务可能遵循不同的版本规则,官方在网站上维护了兼容性说明。

Keptn 作为 CNCF 的孵化项目,为 Kubernetes 环境下的持续交付提供了一套标准化的解决方案。虽然 V1 已经停止维护,但 Lifecycle Toolkit 延续了它的设计理念,继续为云原生应用的生命周期管理提供支持。

然 V1 已经停止维护,但 Lifecycle Toolkit 延续了它的设计理念,继续为云原生应用的生命周期管理提供支持。

更多推荐