v0.3 版本发布
发布日期:2021-10-06
宣布 Knative v0.3 版本发布
Knative 的势头仍在继续!我们再次激动地宣布 Knative 的新版本发布。在之前版本中宣布的一系列架构变更之后,v0.3 实施了从越来越多的 Knative 部署中获得的许多经验教训,提高了运营控制能力,并提升了稳定性。
随着我们转向基于六周节奏的更可预测的发布计划,Knative 的发布现在将更加小巧频繁。我们这样做的目的是为了与用户建立更紧密的反馈循环,并在我们不断从不断增长的用户数量中学习时,实现更平滑的路线修正。

从 v0.3 版本开始,Knative 现在需要 Kubernetes 1.11,这是因为使用了 `/status` 子资源支持,该支持在 Kubernetes 1.11 中进入 Beta 版,并修复了长期存在的 Kubernetes CRD 漏洞。
完整的 Knative v0.3 版本说明,其中概述了新功能以及错误修复和架构变更,可以在 Serving、Build 和 Eventing 存储库中找到。以下是一些亮点
Serving API
在 v0.3 版本中,Knative 现在在 API 中公开了几个额外的参数。这些参数包括显式的修订超时和指定传入流量到用户容器的端口的能力,而 Knative 之前是使用“$PORT”环境变量将该端口公开给容器的。
一个更大的补充是对 Kubernetes 资源规范的支持,这允许您指定用户容器的预留和限制。除了允许服务指定它需要多少 CPU 和内存(RAM)或限制它可以使用多少资源之外,这还允许开发人员请求访问 诸如 GPU 之类的硬件加速器,如果他们的集群包含配置了该功能的节点。
在 v0.3 中,Knative 在推出运算符变更方面也更加积极主动。对 Serving ConfigMaps 的更改现在会立即协调并推出。
自动扩展
在之前版本中引入的新单个共享自动扩展器的基础上,v0.3 引入了更积极的缩容为零策略,该策略默认情况下将在仅 30 秒的空闲时间后将修订缩容为零个 Pod。默认的 Knative Pod 自动扩展器 (KPA) 现在支持修订级别的并发目标。
正如我们在 Kubecon 演示中所展示的,Knative 现在提供了水平 Pod 自动扩展器 (HPA)。这对那些需要选择退出 KPA 并使用 CPU 而不是请求速率作为扩展指标的人来说很有用。(注意:HPA 类修订不会缩容为零)。
最后,您现在还可以就地修改 `PodAutoscaler` 规范,以调整扩展界限和其他参数。
网络
一个经常被请求的功能是能够部署不公开到外部且只能被集群中的其他服务访问的服务。在 v0.3 中,配置为使用 `svc.cluster.local` 域的路由 配置将仅公开到集群本地 Istio 网关。集群本地网关将使部署的服务无法从集群外部访问。开发人员还可以使用其路由或服务上的 `serving.knative.dev/visibility=cluster-local` 标签来启用此行为。
Knative 还在弃用其专用的 Istio 网关。在 v0.3 版本中,Knative 仍将公开公共路由到弃用的网关和默认的 Istio 网关。但是,从下一个版本开始,Knative 将删除弃用的网关,以进一步减少开销并避免额外的公共 IP 成本。(注意,您可能需要在 DNS 映射中更新网关 IP)。
事件
随着之前版本中包含事件,人们重点关注扩展和记录可作为 Kubernetes 自定义资源定义 (CRD) 安装在 Knative 中的可用外部事件源的数量。当前支持的事件源的完整列表可以在 此处找到。
构建
Knative Build 组件现在可以支持单个 `source` 和多个输入 `sources`。如果请求多个源,则将按声明的顺序获取每个源,并将它们放置在 `/workspace` 下以源的名称字段命名的目录中。Build 控制器现在也受 PodSecurityPolicy 的约束,这使集群运营商能够指定更多限制。
监控
指标标签现在应该在所有 Knative 组件中保持一致。此外,除了默认的 Prometheus 指标目标之外,Knative 控制平面指标(来自协调器、自动扩展器和激活器)现在可以直接导出到 Stackdriver。
了解更多
- 欢迎来到 Knative
- 入门文档
- 示例和演示
- Knative 会议和工作组
- 问题和意见
- Knative 在 Twitter 上 (@KnativeProject)
- Knative 在 StackOverflow 上
- Knative Slack