# Knative 0.5 发布

原文：[Announcing Knative v0.5 Release](https://medium.com/knative/announcing-knative-v0-5-release-cfe646ca8e30?nsukey=DmMa%2BnItgi6DqPeCf9uQWn%2BXbGw%2FmuvNjKfVx80KhnL0s9C1pHst%2BzTVnCy8Iax3n9bUNJjrkL9O0TDyf42Qi8z9p0XW4heqtF%2FgPlJrJo%2BNs5qBOkyV%2FyH3Gc%2FjOCwm57VEZYyZNZcFB796ezQwZnbUN06%2FvuNEMR7BpUCETzg9VPlHVOAPpHF6qAkOlfxPCH7iM5Kw1Y7FaL2zLKXXcg%3D%3D)

作者：[Mark Chmarny](https://medium.com/@mchmarny_google)

再一次激动地宣布 [Knative](https://www.knative.dev/) 的新版本发布了。Knative 是一个能帮助开发者在 Kubernetes 基础之上，构建、部署和管理现代 Serverless 工作负载的平台。

更加频繁和符合预期的发布节奏，让我们有机会能够从真实世界中获得更快的反馈，这种节奏当然也意味着更小的、更多的功能进展。也不全是这样，Knative v0.5 中，Eventing 系统有了长足的进步。其中的 Trigger 和 Broker 对象的引入，让开发者基于 Knative 构建事件驱动系统时能够得到更好更强的开发体验。

除了 Eventing，这个版本的 Knative 还增加了监控指标，提高了自动伸缩、队列代理以及 Istio 遥测的可观察性，下面做一个介绍，并对部分变更做出一点深入讲解。

## Eventing

在 **Eventing** 架构中加入了 **Trigger** 和 **Broker** 对象，开发者能够轻松的构建出复杂且健壮的事件驱动应用。通过对 **Producing** 和 **Consuming** 服务的解耦，对路由配置的需求大大降低。我们相信，社区将会使用这一新能力构建出新的事件和创新的解决方案。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1746325400745/8ae119b2-8f66-4310-8bfc-e8efeb6a919d.png align="center")

**Trigger**：开发者不再需要手工的对事件进行转换并路由给下游的 Knative 服务。只要定义一个简单的事件触发器，选择源事件（可以使用任何方式进行过滤），然后发送到消费方服务即可。这一对象会给开发者的体验带来很大简化。

**Broker**：事件 Broker 充当了事件 Hub 的角色，所有的消息都会发送给它。开发者和用户简单的编写服务或者配置事件源发送时间给 Broker，Broker 会处理其它工作。消费方服务只需要创建一个触发器，从 Broker 中接收它们感兴趣的事件即可。

**新的事件源**：Kanative 中加入了 Kafka 的事件源，将 Kafka 生态系统的丰富功能带给了 Knative 和 Kubernetes。

## 自动伸缩

自动伸缩功能增强，在重度工作负载的情况下，能够更平顺、更高效的完成伸缩动作。加入了更多的自动伸缩指标，增强了可观察性。

## 核心 API

新版本中，具名子路由的 URL 暴露在 Service 和 Route 资源的状态之中，就不用再猜测如何标记流量的分配状况了。这是 `v1beta1 task force` 中的第一个变化。后续版本中将会看到更多这方面的更新。

另外我们的 Webhook 中，很多缺省值都可以使用名为 `config-defaults` 的 Configmap 进行配置了。另外，在我们的控制器遇到内部错误时，会通过 Kubernetes 事件系统提供更好的可见性。最后，我们还扩展了我们的一致性测试，其中包含了对 `securityContext` 和 `metadata.generateName` 的支持。

## 网络

这一版本中，针对 gRPC 服务的冷启动和客户端的认证头处理有了很大提升。

Knative 0.5 的完整发布公告中包含了新功能和问题修复的完整列表，分别在 [Serving](https://github.com/knative/serving/releases/tag/v0.5.0)、[Build](https://github.com/knative/build/releases/tag/v0.5.0) 和 [Eventing](https://github.com/knative/eventing/releases/tag/v0.5.0) 代码库中。
