v0.20 版本发布

发布时间:2021-01-20,修订时间:2023-08-03

宣布 Knative v0.20 版本发布

Knative 的新版本现已在多个组件中可用。请按照文档中的说明 安装 Knative 操作相应组件。

目录

亮点

  • Serving 继续完善 DomainMapping。
  • 引入了渐进式流量发布功能。
  • 现在在 Eventing 中添加了将交付规范传播到订阅的功能。
  • Eventing Kafka 代理增强了与指标和跟踪相关的多个可观测性功能。
  • kn CLI 引入了一种新的实验性离线模式(--target),用于 kn service create,允许在资源文件中本地创建 Knative 服务。

Serving v0.20

🚨 破坏性变更

  • 如果 DomainMapping 名称是完全限定的,则验证它。(#10379)
  • 删除 GC 功能标志和 v1 GC/Labeler (#10084)
  • 从代码中删除 webhook 名称,并在 webhook 部署 yaml 中使用键 WEBHOOK_NAME 设置 webhook 名称 (#10205)

💫 新功能和更改

  • 现在可以使用功能标志为 Knative 服务启用 hostAliases。有关详细信息,请参阅 config-features。(#10301)
  • 为 DomainMapping 添加 AutoTLS 支持 (#10467)
  • DomainMapping 现在支持任意目标引用,而不仅仅是 Knative 服务。目标必须符合 Addressable 合同(包括 Kubernetes 服务),并且解析的 URI 必须采用 {name}.{namespace}.svc.{cluster-suffix} 格式。(#10210)
  • 为 DomainMapping 生成的 Ingress 引入 serving.knative.dev/domainmapping 标签。(#10370)
  • 领导者选举转换改进 (#10131)
  • 现在可以通过 env 变量 PROFILING_PORT 配置分析端口 (knative/pkg#1950)
  • Knative 中现在可以使用配置目标的渐进式流量发布。目前,它由 config-network configmap 中的 rolloutDuration 条目驱动。如果该设置为正数,则此设置将在一段时间内将流量从先前版本逐渐转移到当前版本。它可以同时在三个维度处理多个发布
    • 如果不同的标签指向不同的配置,则可以独立发布它们
    • 同一配置目标的不同百分比将以不同的速度发布(但将在同一截止日期左右完成)
    • 如果在先前的发布尚未完成时创建了新的修订版,则系统将清空它们并将所有内容移动到最新的修订版。

🐞 错误修复

  • 更改删除 DomainMapping 时如何清理 ClusterDomainClaims。(#10503)
  • 启用激活器探测和代理之间的连接重用,以提高冷启动后首次请求的性能 (#10228)
  • Webhook 不会删除其他组件添加的命名空间选择器 (knative/pkg#1949)

Eventing v0.20

💫 新功能和更改

  • 现在将通道规范交付字段默认为每个订阅的特定交付规范 (#4652)

🐞 错误修复

  • 允许扩展内存中的通道调度程序,而无需禁用高可用性。(#4675)

🧹 清理

  • Webhook 不再具有集群范围的 Secret 权限。现在,Webhook 的 Secret 权限仅限于 knative-eventing 命名空间。(#4684)
  • 在每次测试迭代中都增加代理的名称 (#4716)
  • 消息接收器支持自定义存活和就绪检查 (#4707)
  • 升级后,您需要运行存储迁移工具才能将 v1beta1 迁移到 v1 apiserversources.sources.knative.dev 资源。(#4655)
  • 升级后,您需要运行存储迁移工具才能将 v1beta1 迁移到 v1 containersources.sources.knative.dev 资源。(#4657)
  • 升级后,您需要运行存储迁移工具才能将 v1beta1 迁移到 v1 sinkbindings.sources.knative.dev 资源。(#4658)

Eventing 扩展

Eventing Kafka 代理 v0.20

eventing-kafka-broker 的发行说明

💫 新功能和更改

  • kafka-broker-receiverkafka-broker-dispatcherkafka-sink-receiver 公开 Kafka 客户端指标。(#435)
  • kafka-broker-receiverkafka-broker-dispatcherkafka-sink-receiver 公开 JVM 指标(默认情况下禁用)(#435)
  • 数据平面 Pod 生成分布式跟踪跨度。(#421)
  • 接收器现在指定反亲和性,以便副本不会位于同一位置 (#483)

🐞 错误修复

  • 当托管资源发生更改时,控制器会重新同步状态。(#420)
  • 领导者选举转换改进 (#449)

🧹 清理

  • 数据平面完全是非阻塞的。(#438)
  • 当没有更改时跳过 ConfigMap 更新 (#511)
  • 将发布标签从 eventing.knative.dev 更改为 kafka.eventing.knative.dev。(#480)

客户端 v0.20

  • kn v0.20.0 引入了一种新的实验性离线模式(--target),用于 kn service create,允许在资源文件中本地创建 Knative 服务,而无需连接到集群。此外,还添加了通常的错误修复和一些较小的功能。

💫 新功能和更改

离线模式

kn service create 命令新增了一个实验性的离线模式。您可以使用 --target 选项启用它,该选项可以指向一个现有的目录或文件名。当提供 --target 时,kn 将创建一个资源文件,该文件可与 kn service create -fkn service apply -f 甚至直接与 kubectl 一起使用。如果 --target 的参数是文件名或不存在的路径,则将创建一个单个文件。文件格式(YAML 或 JSON)由文件扩展名决定。如果 --target 的参数是目录,则资源文件将在该目录中创建,为命名空间和类型创建子目录,并使用服务名称作为文件名的基本名称。

示例

# Create a YAML resource file "myservice.yml" with the custom resource definition of
# the specified Knative service
kn service create myservice --image quay.io/myuser/myservice:latest --target ./myservice.yml

# Create a YAML resource file with the service definition in "service-dir/default/ksvc/myservice.yml"
# The directory "service-dir/" must already exist
kn service create myservice --image gcr.io/myproject/myservice:latest --target service-dir/

缩放选项

kn service createkn service update--scale 选项现在也允许使用范围作为值: - --scale 1..5:将副本数缩减到最小 1 个,最大 5 个 - --scale 1..:将 scale-min 设置为 1,但保留 scale-max 不变(在用于服务更新时) - --scale ..5:将 scale-max 设置为 5,但保留 scale-min 不变(在用于服务更新时) - --scale 5..5:将 scale-min 和 scale-max 都设置为 5(与 --scale 5 相同)

支持新的架构

linux/s390xlinux/ppc64le 已添加到支持的架构列表中,该列表现在包含以下平台:darwin/amd64linux/amd64linux/arm64linux/ppc64lelinux/s390xwindows/amd64

🧹 清理

  • 已应用帮助和错误消息的修复。

其他 CLI 功能

  • kn broker describekn channel describe 现在支持 -o url
  • 已在缺少机器可读输出(例如 -o json)的命令中添加了该功能。

Operator v0.20

新的 Operator 现在可以部署服务和事件组件的新版本 v0.20

🐞 Bug 修复

  • 保留 pingsource-mt-adapter 部署资源的环境变量的值,(#394)
  • 为自定义 yaml 实现额外的清单。(#374

🧹 清理

  • 更新属性以描述生成和/或供应商的文件。(#423)
  • 启用配置生成代码自动生成(#417)
  • 添加一个工具来自动获取版本并在 kodata 中暂存它们。(#360)

感谢 v0.20 版本的贡献者

了解更多

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

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