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-selectortrigger-sugar-selector 字段位于 knative-eventing 命名空间中的 config-sugar ConfigMap 中,允许您使用 Kubernetes LabelSelector 来选择哪些命名空间或触发器分别应该具有已配置的代理。

要迁移糖控制器的现有用法,请执行以下操作

  1. 将 namespace-sugar-selector 设置为以下值:matchExpressions

    • key: "eventing.knative.dev/injection" operator: "In" values: ["enabled"]
  2. 将 trigger-sugar-selector 设置为以下值:matchExpressions

    • key: "eventing.knative.dev/injection" operator: "In" values: ["enabled"]
  3. 删除先前版本中由 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 createkn service updatekn service apply 中。
  • --timeout 用于指定在返回超时错误之前等待应用程序响应请求的时间量(以秒为单位)。此选项的值设置了服务上的 .spec.template.spec.timeoutSecond 字段。如果没有提供,将使用服务器端默认值,默认值为 300 秒。(#1643
  • --pull-policy 用于设置应用程序镜像的 imagePullPolicy。与 Pod 的容器一样,这可以是 AlwaysNeverIfNotPresent 之一。拉取策略将应用于已解析镜像的摘要(Knative 始终将镜像标签解析为摘要),而不是镜像标签。(#1644
  • --wait-window 用于设置错误窗口,该窗口允许在等待服务就绪状态时出现中间错误。如果没有给出,则使用默认值 2 秒(即,如果出现错误状态但在两秒内恢复到成功状态,则 kn 不会返回错误,而是认为是协调过程中的预期波动)。(#1645)
  • --scale-metric 用于在服务上设置 autoscaling.knative.dev/metric 注解,该注解指定自动缩放器应根据其进行缩放的指标。可能的值是 concurrencycpumemoryrps。(#1653
  • --mount 标志添加了子路径功能,以便可以挂载卷的子目录。例如,--mount /mydir=cm:myconfigmap/cmkey 将将 ConfigMap myconfigmap 中键 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)

感谢贡献者

发布负责人

贡献者

了解更多

Knative 是一个开源项目,任何人都可以在 社区 中使用、改进和享受它。我们非常欢迎您加入我们!

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,用于该目的。了解更多。