v0.24 版本发布
发布日期:2021-07-08, 修订日期:2023-08-03
宣布 Knative v0.24 版本发布¶
Knative 的新版本现已在多个组件中提供。
请遵循文档中的说明 安装 Knative,用于各个组件。
目录¶
亮点¶
- Knative 网站 焕然一新! 我们构建在 Material for MkDocs 之上。
- Knative 网站新增了全新的 入门教程。
- 我们对文档进行了重组,现在有 开发者指南 和 管理员指南。
- DomainMapping 功能现已进入 BETA 阶段。
- 为了准备 GA,一些 net-* 组件已重命名。请参阅 Serving 部分中的 重大变更。
- Eventing 拥有新的 实验性功能 流程,以及两个新的实验性功能供您尝试。
- Kubernetes 最低版本现为 1.19。
Serving v0.24¶
🚨 重大变更或值得注意的变更¶
-
一些
net-*
组件重命名 相关问题:knative/networking#448作为我们 GA/1.0 工作的一部分,我们已经对与 Serving 一起安装的网络插件的命名进行了标准化。如果您使用
kubectl
手动管理 Knative 部署,则需要进行两阶段升级。请参阅以下部分-
# Apply the new release $ kubectl apply -f net-http01.yaml # Once the deployment is ready delete the old resources $ kubectl delete deployment http01-controller -n knative-serving $ kubectl delete service challenger -n knative-serving
-
# Apply the new release $ kubectl apply -f net-certmanager.yaml # Once the deployment is ready apply the same file but # prune the old resources $ kubectl apply -f net-certmanager.yaml \ --prune -l networking.knative.dev/certificate-provider=cert-manager
-
# Apply the new release $ kubectl apply -f net-istio.yaml # Once the deployment is ready apply the same file but # prune the old resources $ kubectl apply -f net-istio.yaml \ --prune -l networking.knative.dev/ingress-provider=istio
-
# Apply the new release $ kubectl apply -f net-contour.yaml # Once the deployment is ready apply the same file but # prune the old resources $ kubectl apply -f net-contour.yaml \ --prune -l networking.knative.dev/ingress-provider=contour
-
升级 net-kourier 到 v0.24.0。目前,我们已将 net-kourier 的重命名推迟到下一个版本。我们希望确保在升级过程中不会出现流量中断。因此,升级到 v0.24.0 不需要任何特殊说明。
-
-
Kubernetes 1.19 现已成为必需版本
作为我们 Kubernetes 最低版本原则 的一部分,我们现在对 Kubernetes 版本 1.19 具有硬性要求。
-
Webhook/控制器 RBAC 变更
删除 Knative 安装的推荐方法是运行
kubectl delete -f serving-core.yaml
以及您可能已应用的其他发布 YAML 文件。存在一种误解,即删除knative-serving
命名空间执行类似的清理操作,但实际上它不会删除集群范围的资源。在之前的版本中,集群状态会阻止 Knative Serving 的重新安装。我们已经解决了这个问题,但它需要对命名空间和终结器进行一些 RBAC 权限。请参阅以下相关问题和 PR
- 原始问题:knative/pkg#2044
- 解决方法:knative/pkg#2098
knative-serving-core
集群角色需要对命名空间/终结器进行授权:#11517
-
DomainMapping 功能现已进入 BETA 阶段
这意味着它默认情况下已构建到主
serving-core
YAML 文件中。通过将 domainmapping-controller 的副本数设置为零,仍然可以选择退出该功能。作为此转换的一部分,
config-network
配置映射中 autocreateClusterDomainClaims 的默认值已更改为 false,这意味着需要集群范围的权限才能将创建特定 DomainMapping 的能力委派给命名空间。单租户集群可能希望通过将此值改回true
来允许任意用户创建 DomainMapping。(#11573)
💫 新功能和变更¶
- 允许从容器的安全上下文删除功能(#11344)
- DomainMapping 现在可以指定一个 TLS 密钥,用作 HTTPS 证书(#11250)
- 提供了一个特性开关,当启用时,允许从容器的安全上下文添加功能(#11410)
defaultExternalScheme
现在可用于默认路由,以显示您选择的 URL 方案,而不是默认的 "http"。(#11480)- 优化了生成的路由,以最大限度地减少 Envoy 配置的大小(net-istio#632)
- 将 Contour 的 ClusterRole 和 ClusterRoleBinding 重命名为与现有 Contour 安装区分开来(net-contour#500)
- 添加一个新的 ConfigMap
config-kourier
,其中包含初始enable-service-access-logging
设置(net-kourier#523)
🐞 错误修复¶
- 修复了流量短暂路由“错误”的错误,由于激活器数量很多且服务 Pod 数量很少,导致队列溢出而导致错误。(#11375)
- 每当流量配置错误时,路由中的流量状态都会更新。(#11477)
- 与其他配置映射一致地验证 features 配置映射的
_example
部分是否被意外修改。(#11391)
Eventing v0.24¶
🚨 重大变更或重要变更¶
- 升级后,您必须运行存储迁移工具,才能将资源从 v1beta2 迁移到 v1
pingsources.sources.knative.dev
资源。(#5381)
💫 新功能和变更¶
我们很高兴地宣布,我们引入了一个新的流程来测试和开发新功能,称为实验性功能流程。
借助此流程,您可以尝试使用新功能,并向项目提供反馈!
我们首先介绍两个实验性功能
kreference-group
: 使用ref
时,仅使用 API 组,而不是完整的 API 版本,来引用资源。delivery-timeout
: 使用delivery
时,定义每个请求的超时。
您可以在实验性功能文档中阅读有关如何启用这些功能及其用法的更多信息。
KReference.Group
现在也可以在Subscription.Spec.Channel
中使用 (#5520)- 添加了
DeliverySpec.Timeout
(#5149) - 添加了实验性功能
kreference-group
。启用它后,您可以使用Subscriber.Ref.Group
而不是Subscriber.Ref.APIVersion
来引用另一个资源,而无需明确说明资源版本(例如,v1beta1、v1 等) (#5440) - 剩余的 HA 控制平面 Pod(通过操作符)现在使用 podAntiAffinity 标记,以确保没有单点故障。(#5409)
🐞 错误修复¶
- 修复了与 apiserversources 相关的竞争条件,即它们在开始侦听事件之前就报告已就绪 (#5446)
- Imc-controller 集群角色现在具有对 namespaces/finalizers 的更新权限。(#5539)
- Knative-eventing-webhook 集群角色具有对 namespaces/finalizers 的更新权限。(#5501)
🧹 清理¶
Subscription.Spec.Channel
现在使用 KReference,并且spec.channel
CRD 模式不再那么宽松,而是与 KReference 字段的支持用法相匹配。使用 YAML 创建资源的订阅用户不受影响。(#5412)- PingSource 适配器现在在源未就绪时生成正常事件,而不是警告。将事件重命名为 PingSourceSkipped。
- PingSource 适配器现在在同步后生成正常事件 PingSourceSynchronized。(#5549)
Eventing 扩展¶
Apache Kafka Broker v0.24¶
💫 新功能和变更¶
- 在现有的订阅者已解析条件中添加有关传递顺序的一些详细信息。#912
- 接收器部署使用所有可用 CPU。#985
- 现在,您可以在 Broker 和触发器传递规范中都指定新的超时字段,作为实验性功能 delivery-timeout 的一部分。有关更多信息,请参阅实验性功能。#1034
- 将 Go 更新为 v1.16 #886
- 将 protobuf 更新为 v3.17.x #946
- 将 vert.x 更新为 v4.1 #900
RabbitMQ Eventing v0.24¶
💫 新功能和变更¶
- 添加验证 Webhook,用于检查 RabbitMQBroker 类代理的有效 [secret, rabbitmqcluster] 配置。(#324)
- 提供安装选项,该选项不依赖于 rabbitmq 集群操作符或 messaging-topology-operator。这样您就可以自带 RabbitMQ 代理。(#309)
- 添加两种代理的安装说明。(#315)
🐞 错误修复¶
- 修复独立代理以正确支持触发器死信接收器。(#341)
- 修复每个触发器的死信接收器支持。(#337)
- 修复问题#320: 修复指向夜间版和即将发布的独立代理的错误链接。(#325)
- 删除不必要的 keda 权限,因为该功能已移至 https://github.com/knative-extensions/eventing-autoscaler-keda (#319)
- 为所有 RabbitMQ 资源使用更好的名称。独立代理的 k8s 资源和 RabbitMQ 资源。(#344)
客户端 v0.24¶
💫 新功能和变更¶
- 美化 Webhook 警告的打印 #1353
- 将 Kubernetes 依赖项更新为 v0.20.7 #1344
- 提高源代码的覆盖率 #1343
- 使 e2e 测试能够通过其他网络运行 #1339
- 添加
--env-value-from
标志,并保持提供的环境变量的顺序 #1328
🐞 错误修复¶
- 修复订阅的通道以使用 KRefence 类型 #1326
操作符 v0.24¶
💫 新功能和变更¶
- 添加 Eventing 源的清单 #641
- 更改 Eventing 源的 API #613
- 添加安装源的逻辑 #645
- 删除对 pkg/test.KubeClient 的使用 #655
- 在安装部署和服务后安装 Webhook #674
🐞 错误修复¶
- 通过支持版本参数来改进获取器 #613
- 在运行升级后测试之前添加 20 秒的超时 #623
- 将 $KO_FLAGS 添加到 e2e 测试中 #649
- 使 e2e 测试能够通过其他网络运行 #650
- 允许通过 spec.deployments.nodeSelector 设置节点选择器 #658
- 优雅地处理 net-* 部署重命名 #669
感谢贡献者¶
- @BbolroC
- @aliok
- @benmoss
- @dprotaso
- @dsimansk
- @houshengbo
- @howardjohn
- @itsmurugappan
- @izabelacg
- @julz
- @lberk
- @lionelvillard
- @markusthoemmes
- @matzew
- @nak3
- @novahe
- @pierDipi
- @psschwei
- @shinigambit
- @slinkydeveloper
- @vaikas
- @zroubalik
了解更多¶
Knative 是一个开源项目,社区中的任何人都可以使用、改进和享受它。我们希望您加入我们!
- 欢迎使用 Knative
- 入门文档
- 示例
- Knative 工作组
- Knative 用户邮件列表
- Knative 开发邮件列表
- Knative 的 Twitter 帐户 @KnativeProject
- Knative 在 StackOverflow 上
- Knative 的 Slack
- Knative 在 YouTube 上