v1.4 版本发布
发布时间:2022-04-26 , 修订时间:2023-08-03
宣布 Knative 1.4 版本发布¶
Knative 的新版本现已在多个组件中可用。
按照 安装 Knative 中的说明安装所需的组件。
目录¶
亮点¶
- 我们现在最低支持的 Kubernetes 版本是 1.22
Serving v1.4¶
🚨 重大或值得注意的更改¶
- 我们现在最低支持的 Kubernetes 版本是 1.22 (#12753)
- 使用水平 Pod 自动缩放器 (HPA) 时,修订版仅在达到初始规模/最小规模值后才会被标记为就绪。例如,如果最小规模:“4”,则修订版在所有四个 Pod 都就绪之前不会被标记为就绪。请注意,在此更改之后,修订版可能需要更长时间才能变为就绪。有关更多详细信息,请参见 https://knative.k8s.ac.cn/docs/serving/autoscaling/scale-bounds/。(#12811)
💫 新功能和更改¶
- 支持在 DomainMapping CRD 中为服务重写默认 HTTP 行为的注释“networking.knative.dev/http-protocol”。(#12786)
- serving.knative.dev/release 标签(在 v1.3 中已弃用)已被删除。请切换到使用 app.kubernetes.io/name: knative-serving 和 app.kubernetes.io/version: $VERSION。(#12754)
- 用户可以通过在 .spec.template.metadata.annotations 中设置 serving.knative.dev/progress-deadline 注释来配置每个修订版的进度截止时间。(#12751)
🐞 错误修复¶
- 将默认 target-burst-capacity 更改为 210,以解决导致激活器快速进出路径的配置问题。(#12774)
- 修复 gc:按正确顺序删除修订版。(#12752)
- 修复使用 imagePullSecrets 时标签到摘要解析。(#12836)
Eventing v1.4¶
🚨 重大或值得注意的更改¶
- Kubernetes 最低版本是 1.22。(#6280)
- 糖 reconciler 已集成到基本事件控制器中,现在由两个 LabelSelector 字段控制。
namespace-sugar-selector
和trigger-sugar-selector
字段位于knative-eventing
命名空间中的config-sugar
ConfigMap 中,允许您使用 Kubernetes LabelSelector 来选择哪些命名空间或触发器分别应该具有已配置的代理。
要迁移糖控制器的现有用法,请执行以下操作
-
将 namespace-sugar-selector 设置为以下值:matchExpressions
- key: "eventing.knative.dev/injection" operator: "In" values: ["enabled"]
-
将 trigger-sugar-selector 设置为以下值:matchExpressions
- key: "eventing.knative.dev/injection" operator: "In" values: ["enabled"]
-
删除先前版本中由 eventing-sugar-controller.yaml 资源定义的部署。(#6027)
💫 新功能和更改¶
- 通过将 "config/channels/in-memory-channel/configmaps/observability.yaml" 符号链接到 "config/core/configmaps/observability.yaml" 来减少多个位置中存在的 observability.yaml 配置映射的重复。(#6301)
- 通过将 "config/channels/in-memory-channel/configmaps/tracing.yaml" 符号链接到 "config/core/configmaps/tracing.yaml" 来减少多个位置中存在的 tracing.yaml 配置映射的重复。(#6295)
sendevent
工具不再是 Eventing 核心的一部分,一个替代方案作为kn
插件可用:https://github.com/knative-extensions/kn-plugin-event (#6284)
🐞 错误修复¶
- 在 Channel 状态中设置死信接收器 URI。(#6256)
- MTChannelBroker 现在可以与其他代理实现共存。(#6265)
- 为 inmemorychannel 的调度程序创建的服务将定义端口,类似于其他服务。(#6283)
Eventing 扩展¶
Apache Kafka Broker v1.4¶
💫 新功能和更改¶
- 在数据平面处理主机头以识别通道实例。(#1990)
- 现在从旧的合并 KafkaChannel 自动迁移到新的 KafkaChannel。低级别配置选项(例如 Sarama 设置)不会迁移到新通道。但是,通道 URL 和身份验证设置会被迁移。(#2004)
- 丢弃不是 CloudEvents 的消费者记录。(#2066)
- 根据传递规范动态设置 max.poll.interval.ms。(#2058)
- 默认请求超时时间现在为 10 分钟,以前设置为 10 秒。
- 它可以使用 Broker、Trigger、KafkaChannel 和 Subscription 上的 spec.delivery.timeout 重写。(#2057)
- 添加新的 new-trigger-filters 实验性功能。启用后,Trigger 支持新的 filters 字段,该字段符合 CloudEvents Subscriptions API 中定义的 filters API 字段。它允许您指定一组功能强大的过滤器表达式,其中每个表达式都会针对每个事件评估为真或假。(#1992)
RabbitMQ Broker 和源 v1.4¶
🚨 重大或值得注意的更改¶
- 删除对托管 RabbitMQ 代理的支持。(#708)
💫 新功能和更改¶
- 现在,RabbitMQ Broker 的性能图表将为我们的性能测试目录中的每个主要版本发布生成。(#668)
- 现在,RabbitMQ 源在无法发送事件时不会陷入循环重新排队消息中。它遵循基于重试的退避策略(如果预取计数为 1,则不会重新排队消息)。(#614)
- 现在,RabbitMQ 的 Broker Ingress Pod 可以从已关闭的通道或连接中恢复。(#648)
- 将 Trigger 和 Source 中的预取计数环境变量名称更改为 Parallelism,以更好地反映其功能。(#676)
客户端 v1.4¶
💫 新特性和变更¶
- 编译依赖关系已更新至 Knative Serving v1.4.0,Knative Eventing v1.4.0(Go 模块版本为 v0.31.0)。
- 一些新标志已添加到
kn service create
、kn service update
和kn service apply
中。 --timeout
用于指定在返回超时错误之前等待应用程序响应请求的时间量(以秒为单位)。此选项的值设置了服务上的.spec.template.spec.timeoutSecond
字段。如果没有提供,将使用服务器端默认值,默认值为 300 秒。(#1643)--pull-policy
用于设置应用程序镜像的 imagePullPolicy。与 Pod 的容器一样,这可以是Always
、Never
、IfNotPresent
之一。拉取策略将应用于已解析镜像的摘要(Knative 始终将镜像标签解析为摘要),而不是镜像标签。(#1644)--wait-window
用于设置错误窗口,该窗口允许在等待服务就绪状态时出现中间错误。如果没有给出,则使用默认值 2 秒(即,如果出现错误状态但在两秒内恢复到成功状态,则kn
不会返回错误,而是认为是协调过程中的预期波动)。(#1645)--scale-metric
用于在服务上设置autoscaling.knative.dev/metric
注解,该注解指定自动缩放器应根据其进行缩放的指标。可能的值是concurrency
、cpu
、memory
和rps
。(#1653)- 向
--mount
标志添加了子路径功能,以便可以挂载卷的子目录。例如,--mount /mydir=cm:myconfigmap/cmkey
将将 ConfigMapmyconfigmap
中键cmkey
的值挂载到服务应用程序容器内的目录/mydir
。(#1655)
发布的插件¶
- 从本版本开始,已包含 kn-plugin-event 插件。
- 与 Knative v1.4.0 平行发布并保持一致的插件是
kn-plugin-admin
用于管理在 Kubernetes 上运行的 Knative 安装 | 下载kn-plugin-quickstart
用于从命令行快速设置本地 Knative 环境。| 下载kn-plugin-source-kafka
用于管理已通过 eventing-kafka 在后端安装的 Kafka 源 | 下载kn-plugin-source-kamelet
用于管理已通过 Camel-K 在后端安装的 Kamelet 源 | 下载kn-plugin-event
用于从集群内部或外部创建和发送 CloudEvents | 下载
注意:所有这些插件都是单独发布的,技术上不属于此 knative/client 版本,但它们保持一致以共享相同的 Knative 依赖关系,并且可以作为内联目标。
操作员 v1.4¶
💫 新特性和变更¶
- 重构 API 迁移后的安装后 yaml 文件 (#996)
- 修复由于标签更改引起的 Knative 的 RBAC 问题 (#1010)
- 将功能设置为无缝升级 (#1014)
- 为服务实现标签和注解覆盖 (#1033)
- 添加行为准则以引用 knative/community 的 CoC (#1003)
🐞 错误修复¶
- 允许将 knative 部署缩放到零以在不需要时禁用它们 (#1029)
感谢贡献者¶
发布负责人
贡献者
- @aavarghese
- @aliok
- @devguyio
- @dprotaso
- @gab-satchi
- @gabo1208
- @houshengbo
- @jhill072
- @Juneezee
- @matzew
- @n3wscott
- @pierDipi
- @psschwei
- @Taction
- @vyasgun
- @wei840222
- @xtreme-sameer-vohra
了解更多¶
Knative 是一个开源项目,任何人都可以在 社区 中使用、改进和享受它。我们非常欢迎您加入我们!
- Knative 文档
- 快速入门教程
- 示例
- Knative 工作组
- Knative 用户邮件列表
- Knative 开发邮件列表
- Knative 在 Twitter 上 @KnativeProject
- Knative 在 StackOverflow 上
- Knative Slack
- Knative 在 YouTube 上