Knative 0.5 发布
原文:Announcing Knative v0.5 Release
作者:Mark Chmarny
再一次激动地宣布 Knative 的新版本发布了。Knative 是一个能帮助开发者在 Kubernetes 基础之上,构建、部署和管理现代 Serverless 工作负载的平台。
更加频繁和符合预期的发布节奏,让我们有机会能够从真实世界中获得更快的反馈,这种节奏当然也意味着更小的、更多的功能进展。也不全是这样,Knative v0.5 中,Eventing 系统有了长足的进步。其中的 Trigger 和 Broker 对象的引入,让开发者基于 Knative 构建事件驱动系统时能够得到更好更强的开发体验。
除了 Eventing,这个版本的 Knative 还增加了监控指标,提高了自动伸缩、队列代理以及 Istio 遥测的可观察性,下面做一个介绍,并对部分变更做出一点深入讲解。
Eventing
在 Eventing 架构中加入了 Trigger 和 Broker 对象,开发者能够轻松的构建出复杂且健壮的事件驱动应用。通过对 Producing 和 Consuming 服务的解耦,对路由配置的需求大大降低。我们相信,社区将会使用这一新能力构建出新的事件和创新的解决方案。
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、Build 和 Eventing 代码库中。