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-receiver
、kafka-broker-dispatcher
和kafka-sink-receiver
公开 Kafka 客户端指标。(#435)kafka-broker-receiver
、kafka-broker-dispatcher
和kafka-sink-receiver
公开 JVM 指标(默认情况下禁用)(#435)- 数据平面 Pod 生成分布式跟踪跨度。(#421)
- 接收器现在指定反亲和性,以便副本不会位于同一位置 (#483)
🐞 错误修复¶
🧹 清理¶
- 数据平面完全是非阻塞的。(#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 -f
、kn 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 create
和 kn 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/s390x
和 linux/ppc64le
已添加到支持的架构列表中,该列表现在包含以下平台:darwin/amd64
、linux/amd64
、linux/arm64
、linux/ppc64le
、linux/s390x
和 windows/amd64
。
🧹 清理¶
- 已应用帮助和错误消息的修复。
其他 CLI 功能¶
kn broker describe
和kn channel describe
现在支持-o url
。- 已在缺少机器可读输出(例如
-o json
)的命令中添加了该功能。
Operator v0.20¶
新的 Operator 现在可以部署服务和事件组件的新版本 v0.20
。
🐞 Bug 修复¶
🧹 清理¶
感谢 v0.20 版本的贡献者¶
- @BbolroC
- @Harwayne
- @akerekes
- @antoineco
- @arghya88
- @dprotaso
- @dsimansk
- @evankanderson
- @grac3gao
- @houshengbo
- @itsmurugappan
- @julz
- @markusthoemmes
- @mattmoor
- @mpetason
- @n3wscott
- @nak3
- @navidshaikh
- @pierDipi
- @rhuss
- @slinkydeveloper
- @tcnghia
- @vaikas
- @yselkowitz
了解更多¶
Knative 是一个开源项目,社区中的任何人都可以使用、改进和享受它。我们欢迎您加入我们!
- 欢迎使用 Knative
- 入门文档
- 示例和演示
- Knative 会议和工作组
- 问题和疑难解答
- Knative 用户邮件列表
- Knative 开发邮件列表
- Knative 推特 @KnativeProject
- Knative 在 StackOverflow 上
- Knative Slack
- Knative 在 YouTube 上