v0.17 版本

发布日期:2020-09-05,  修订日期:2023-08-03

宣布 Knative v0.17 版本发布

Knative 的新版本现已在多个组件中提供。请按照文档中的说明进行操作 安装 Knative 针对各个组件。 - Serving 继续他们的旅程,对已有的 v1 API 版本进行了测试和基准优化。 - Eventing 现在提供 ContainerSource 和 PingSource 作为 v1beta1。 - kn CLI 继续朝着全面支持 Eventing 的方向发展,添加了 Channel 资源。 - Operator 添加了对 Knative 安装的自定义清单的支持。

请务必查看 升级文档 了解升级到最新版本之前是否适用任何与您当前版本相关的注意事项。

Serving v0.17

InitialScale 注释用于控制初始部署规模

有一个新的注释可用于控制在推出新版本时最初部署的 Pod 数量。

net-contour 和 net-kourier 已进入 Beta 阶段

除了 net-istio 之外,Knative 现在还支持三个处于 Beta 状态的其他网络层。

Kubernetes 最低版本尚未更改

Kubernetes 1.16 仍然是最小版本。

自动伸缩- [ [#8613](https://github.com/knative/serving/pull/8613), [#8846](https://github.com/knative/serving/pull/8846) ] 启动初始规模,可以选择从 0 开始(感谢 [@taragu](https://github.com/taragu)) - 推出了新的 KPA 状态,这使得修订和 KPA 本身的有限状态机得以大幅简化: - 达到初始规模(感谢 [@markusthoemmes](https://github.com/markusthoemmes) 和 [@taragu](https://github.com/taragu)) - SKS 就绪(感谢 [@vagababov](https://github.com/vagababov)) - [ [#8787](https://github.com/knative/serving/pull/8787), [#8796](https://github.com/knative/serving/pull/8796) ] 在 Activator 中重写并发和统计报告(感谢 [@markusthoemmes](https://github.com/markusthoemmes)) - [ [#8810](https://github.com/knative/serving/pull/8810), [#9027](https://github.com/knative/serving/pull/9027) ] 可配置的空闲连接/每个主机的连接(感谢 [@vagababov](https://github.com/vagababov) 和 [@julz](https://github.com/julz)) - [ [#8759](https://github.com/knative/serving/pull/8759),[#8762](https://github.com/knative/serving/pull/8762) ] 优化 KPA 中的 Pod 计数(将 3 次遍历 Pod 减少为 1 次)(感谢 [@vagababov](https://github.com/vagababov)) - [#8851](https://github.com/knative/serving/pull/8851) 对 Activator 中返回的 lambda 进行巧妙优化,为 Activator 中的每个请求节省 16b 内存分配(感谢 [@julz](https://github.com/julz)) - 大量新基准(感谢 [@julz](https://github.com/julz) 和 [@markusthoemmes](https://github.com/markusthoemmes)) - 各种清理、测试稳定性、代码优化等(感谢 [@julz](https://github.com/julz)、[@markusthoemmes](https://github.com/markusthoemmes)、[@vagababov](https://github.com/vagababov)、[@skonto](https://github.com/skonto))
核心 API- 默认情况下启用领导者选举(感谢 [@mattmoor](https://github.com/mattmoor)) - 默认情况下,控制平面组件现在启用领导者选举,现在可以使用 --disable-ha 禁用(暂时)。 - 现在可以使用新的功能标志 - 有关详细信息,请参阅 config-features - [#8645](https://github.com/knative/serving/pull/8645) 启用亲和性、nodeSelector 和容忍度(感谢 [@emaildanwilson](https://github.com/emaildanwilson)) - [#9060](https://github.com/knative/serving/pull/9060) 启用其他容器和 Pod 安全上下文属性(感谢 [@dprotaso](https://github.com/dprotaso)) - [pkg#1512](https://github.com/knative/pkg/pull/1512) 为我们的控制器采用双通道工作队列,以防止在全局重新同步期间出现饥饿现象(感谢 [@vagababov](https://github.com/vagababov)) - [#8951](https://github.com/knative/serving/pull/8951) 添加配置旋钮 "max-value",它允许为没有 "autoscaling.knative.dev/maxScale" 注释的任何修订设置集群范围的值(感谢 [@arturenault](https://github.com/arturenault)) - [#8724](https://github.com/knative/serving/pull/8724) 添加了 60 秒的图像摘要解析超时,以防止出现注册表缓慢的情况(感谢 [@julz](https://github.com/julz)) - [#8621](https://github.com/knative/serving/pull/8621) 实施了新的垃圾收集器,它允许使用基于时间的或最小/最大计数边界来自动删除旧版本(感谢 [@whaught](https://github.com/whaught)) - 为了启用此功能,新的 v2 Labeler 会在修订版上填充 RoutingState 和 RoutingStateModified 注释 - [#8828](https://github.com/knative/serving/pull/8828) PodSpec DryRun 也验证了无父(无服务)配置,感谢 [@whaught](https://github.com/whaught)) - [#8846](https://github.com/knative/serving/pull/8846) 用户可以使用集群范围的标志 initial-scale 和注释 "autoscaling.internal.knative.dev/initialScale" 指定初始部署的规模。集群范围的标志 allow-zero-initial-scale 控制集群范围和修订初始规模是否可以为零(感谢 [@taragu](https://github.com/taragu)) - [#8757](https://github.com/knative/serving/pull/8757) 启用后,ResponsiveGC 功能标志会禁用 lastPinned 注释时间戳刷新(感谢 [@whaught](https://github.com/whaught)) - [pkg#1592](https://github.com/knative/pkg/pull/1592) 添加了一个解决方法,使 Knative 可以在 AKS 1.17+ 上运行(感谢 [@n3wscott](https://github.com/n3wscott)) - [pkg#1517](https://github.com/knative/pkg/pull/1517) Webhooks 在关闭时会消耗更长时间(感谢 [@mattmoor](https://github.com/mattmoor))
网络- [#2737](https://github.com/knative/serving/pull/2737) Net-contour 已进入 Beta 阶段(感谢 [@mattmoor](https://github.com/mattmoor)) - [#2738](https://github.com/knative/serving/pull/2738) Net-kourier 已进入 Beta 阶段(感谢 [@mattmoor](https://github.com/mattmoor)) - [#8965](https://github.com/knative/serving/pull/8965) 默认的 Kingress 超时时间增加到 48 小时,以防止 gRPC 流超时(感谢 [@tcnghia](https://github.com/tcnghia)) - knative/serving/pkg/network 中的代码已完全迁移到 knative/networking 存储库(感谢 [@tcnghia](https://github.com/tcnghia)) - [#8798](https://github.com/knative/serving/pull/8798) 从路由传播占位符服务的标签和注释(感谢 [@nak3](https://github.com/nak3)) - [knative-extensions/net-istio#170](https://github.com/knative-extensions/net-istio/pull/170) 启用自动 TLS 后,net-istio 控制器现在会为每个 Kingress 生成 Istio TLS 网关,而不是协调 knative-ingress-gateway 网关(感谢 [@ZhiminXiang](https://github.com/ZhiminXiang)) - [knative-extensions/net-istio#174](https://github.com/knative-extensions/net-istio/pull/174) Kingress(net-istio)引入了 RewriteHost 功能(感谢 [@julz](https://github.com/julz)) - [knative-extensions/net-istio##190](https://github.com/knative-extensions/net-istio/pull/190) Kingress 探测器改进,用于 net-istio:探测单个主机而不是每个主机,以提高探测器队列的吞吐量(感谢 [@JRBANCEL](https://github.com/JRBANCEL))

Eventing v0.17

需要采取的操作 - #3564 控制平面组件上现在默认情况下启用高可用性;现在可以使用 --disable-ha 禁用。(感谢 @mattmoor) - 您必须手动删除(先前已缩放到 0 的)部署

metadata:
name: broker-controller
namespace: knative-eventing
- #3547 kubectl delete deployment -n knative-eventing broker-controller(感谢 @vaikas

新功能- [#3661](https://github.com/knative/eventing/pull/3661) ContainerSource 现已进入 v1beta1 版本(感谢 [@bharattkukreja](https://github.com/bharattkukreja)) - [#3577](https://github.com/knative/eventing/pull/3577) SinkBinding 现已进入 v1beta1 版本(感谢 [@nachocano](https://github.com/nachocano)) - [#3605](https://github.com/knative/eventing/pull/3605) Eventing 符合性测试现在可以验证 Sources 状态的符合性(感谢 [@devguyio](https://github.com/devguyio)) - [#3607](https://github.com/knative/eventing/pull/3607) PingSource 现在支持设置时区。(感谢 [@lionelvillard](https://github.com/lionelvillard)) - [#3741](https://github.com/knative/eventing/pull/3741) APIServerSource 现在在 CloudEvent 中设置名称、类型和命名空间作为扩展属性。(感谢 [@danyinggu](https://github.com/danyinggu)) - [#3632](https://github.com/knative/eventing/pull/3632) 为 broker 添加两个标志位来控制 rest 客户端的 QPS/突发。默认值与之前相同。(感谢 [@vaikas](https://github.com/vaikas)) - [#2932](https://github.com/knative/eventing/pull/2932) 内存通道和基于多租户通道的 Broker 会重试发送事件(感谢 [@pierDipi](https://github.com/pierDipi))
已移除的功能- [#3676](https://github.com/knative/eventing/pull/3676) 对于每次成功的 IMC 协调操作不再发出 k8s 事件(感谢 [@vaikas](https://github.com/vaikas)) - [#3494](https://github.com/knative/eventing/pull/3494) 移除 v1alpha1 CRD API 版本。(感谢 [@vaikas](https://github.com/vaikas)) - [#3837](https://github.com/knative/eventing/pull/3837) 移除 PingSource v1alpha1 API(感谢 [@lionelvillard](https://github.com/lionelvillard))
Bug 修复- [#3534](https://github.com/knative/eventing/pull/3534) 修复了迁移作业在启用了自动注入的 Istio 集群上失败的问题(感谢 [@vayyappaneni](https://github.com/vayyappaneni)) - [#3693](https://github.com/knative/eventing/pull/3693) 对于 ApiServerSource,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "ApiServerSourceReconciled"。(感谢 [@n3wscott](https://github.com/n3wscott)) - [#3694](https://github.com/knative/eventing/pull/3694) 对于 Channel,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "ChannelReconciled"。(感谢 [@n3wscott](https://github.com/n3wscott)) - [#3696](https://github.com/knative/eventing/pull/3696) 对于 EventType,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "EventTypeReconciled"。([@n3wscott](https://github.com/n3wscott)) - [#3697](https://github.com/knative/eventing/pull/3697) 对于 MTBroker,不再为 FinalizeKind 方法的干净运行生成 Kubernetes 事件 "BrokerReconciled"。([@n3wscott](https://github.com/n3wscott)) - [#3698](https://github.com/knative/eventing/pull/3698) 对于 Parallel,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "ParallelReconciled"。(感谢 [@n3wscott](https://github.com/n3wscott)) - [#3699](https://github.com/knative/eventing/pull/3699) 对于 PingSource,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "PingSourceReconciled"。对于 Sequence,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "SequenceReconciled"。(感谢 [@n3wscott](https://github.com/n3wscott)) - [#3695](https://github.com/knative/eventing/pull/3695) 对于 Subscription,不再为 ReconcileKind 方法的干净运行生成 Kubernetes 事件 "SubscriptionReconciled"。(感谢 [@n3wscott](https://github.com/n3wscott)) - [#3574](https://github.com/knative/eventing/pull/3574) 在 v1beta1<->v1 之间转换时,DeadLetterChannel 被丢弃(感谢 [@vaikas](https://github.com/vaikas)) - 并非所有条件都正确地在 v1beta1<->v1 之间转换。基本上只有 Ready 被转换。 - [#3596](https://github.com/knative/eventing/pull/3596) 扩展 terminationGracePeriod 以修复关闭 webhook 的问题。(感谢 [@mattmoor](https://github.com/mattmoor)) - [#3619](https://github.com/knative/eventing/pull/3619) v1 和 v1beta1 DeliverySpec.BackoffDelay 接受 ISO8601 持续时间(感谢 [@pierDipi](https://github.com/pierDipi)) - [#3831](https://github.com/knative/eventing/pull/3831) PingSource 在关闭时间接近分钟时不再丢失事件(感谢 [@lionelvillard](https://github.com/lionelvillard))
其他更改- [#3562](https://github.com/knative/eventing/pull/3562) 为控制器和 webhook 添加缺失的 "leases" RBAC 以支持领导者选举。(感谢 [@mattmoor](https://github.com/mattmoor)) - [#3795](https://github.com/knative/eventing/pull/3795) 控制平面组件现在指定反亲和性,以便副本不会共置。(感谢 [@mattmoor](https://github.com/mattmoor)) - [#3451](https://github.com/knative/eventing/pull/3451) 多租户 PingSource 适配器消耗更少的资源。(感谢 [@lionelvillard](https://github.com/lionelvillard)) - [#3587](https://github.com/knative/eventing/pull/3587) 使用 v1 API 形状协调 eventing.{Broker,Trigger}。使用它们的 v1 形状操作依赖资源(订阅等)。(感谢 [@vaikas](https://github.com/vaikas)) - [#3643](https://github.com/knative/eventing/pull/3643) 当协调 Trigger 时,不要为它发出事件(感谢 [@vaikas](https://github.com/vaikas))

Eventing 贡献 v0.17

Eventing 贡献包括源和通道引用实现。具有 v1beta1 API 的源获得了改进和 bug 修复。

新功能- [#1409](https://github.com/knative/eventing-contrib/pull/1409) Kafka 通道重试发送事件(感谢 [@pierDipi](https://github.com/pierDipi))
Bug 修复- [#1155](https://github.com/knative/eventing-contrib/pull/1155) KafkaChannel 现在通过 config-tracing 中的 eventing 式跟踪配置正确地实现了跟踪(感谢 [@slinkydeveloper](https://github.com/slinkydeveloper)) - [#1398](https://github.com/knative/eventing-contrib/pull/1398) KafkaChannel v1beta1<>v1alpha1 转换已修复(感谢 [@aliok](https://github.com/aliok))
其他更改- [#1407](https://github.com/knative/eventing-contrib/pull/1407) 使用 v1beta1 API 形状协调 KafkaChannel。使用它们的 v1 形状操作依赖资源(订阅等)。(感谢 [@aliok](https://github.com/aliok)) - [#1405](https://github.com/knative/eventing-contrib/pull/1405) 使用 v1beta1 API 形状协调 KafkaSource 和 KafkaBinding。使用它们的 v1 形状操作依赖资源(订阅等)。请注意,`resource` 和 `serviceAccountName` 字段已从 v1beta1 中的类型中移除。(感谢 [@aliok](https://github.com/aliok))

客户端 v0.17

CLI(命令行界面)继续向全面 Eventing 支持迈进,并在此版本中添加了一些额外的好东西。

元数据

编译依赖项已更新至 Knative Serving 0.17.0 和 Knative Eventing 0.17.0。

Eventing 支持

  • #967 此版本添加了对管理通道资源的全面支持。它允许您在创建期间指定通道类型,并在配置中添加一些 GVK 坐标到符号名称的映射。

插件内联支持

  • #902 现在可以创建 kn 的自定义变体,这些变体可以将基于 golang 的插件内联到单个二进制文件中。有关机制的简要说明,请参阅 插件自述文件。更多文档和示例待定。(感谢 @rhuss
    • 需要注意的是,从 客户端存储库 发布的 kn 不会内联任何插件。它只是提供了启用插件内联的钩子。
新功能- [#980](https://github.com/knative/client/pull/980) kn source list 现在使用自己的列表类型来表示异构列表(感谢 [@navidshaikh](https://github.com/navidshaikh)) - [#951](https://github.com/knative/client/pull/951) NAMESPACE 标题列已添加到 kn source list -A(感谢 [@Kaustubh-pande](https://github.com/Kaustubh-pande)) - [#937](https://github.com/knative/client/pull/937) 添加支持将 kn service create --filename 与其他选项结合使用(感谢 [@dsimansk](https://github.com/dsimansk))
Bug 修复- [#975](https://github.com/knative/client/pull/975) 客户端侧卷名称生成已修复(感谢 [@navidshaikh](https://github.com/navidshaikh)) - [#948](https://github.com/knative/client/pull/948) 如果对 CRD 的访问受限,则仅列出内置源(感谢 [@navidshaikh](https://github.com/navidshaikh))
其他更改- [#974](https://github.com/knative/client/pull/974) 为 e2e 测试构建测试镜像,添加 `.ko.yaml` 指定基本镜像(感谢 [@itsmurugappan](https://github.com/itsmurugappan)) - [#972](https://github.com/knative/client/pull/972) 为动态客户端添加模拟测试客户端(感谢 [@priyshar01](https://github.com/priyshar01)) - [#971](https://github.com/knative/client/pull/971) 修复 `kn service delete` 和 `kn revision delete` 失败的退出代码(感谢 [@hemanrnjn](https://github.com/hemanrnjn)) - [#957](https://github.com/knative/client/pull/957) 允许通过环境变量自定义 kn 测试镜像(感谢 [@mvinkler](https://github.com/mvinkler)) - [#943](https://github.com/knative/client/pull/943) 将 PodSpecFlags 与 Service ConfigurationEditFlags 分开(感谢 [@daisy-ycguo](https://github.com/daisy-ycguo))

操作员 v0.17

操作员的这个新版本支持为 Knative 安装自定义清单文件。在操作员 CRD 中引入了字段 `spec.manifests`,用于指定要安装的 Knative 组件的链接。此字段通常与字段 `spec.version` 一起使用。

Bug 修复- [#236](https://github.com/knative/operator/pull/236) 为作业添加 istio ignore 注释转换器(感谢 [@AceHack](https://github.com/AceHack)) - [#224](https://github.com/knative/operator/pull/224) 更新到最新的 manifestival 以修复 CRD/v1 转换器中的问题(感谢 [@jimoosciuc](https://github.com/jimoosciuc)) - [#147](https://github.com/knative/operator/pull/147) 添加支持指定自定义 yaml(感谢 [@houshengbo](https://github.com/houshengbo)) - [#246](https://github.com/knative/operator/pull/246) 验证 `spec.version` 是否与清单的版本匹配(感谢 [@houshengbo](https://github.com/houshengbo)) - [#255](https://github.com/knative/operator/pull/255) CR 规范中的 `sinkBindingSelectionMode`(感谢 [@aliok](https://github.com/aliok))
其他更改- [#220](https://github.com/knative/operator/pull/220) 明确说明部署不是唯一可覆盖的容器(感谢 [@jcrossley3](https://github.com/jcrossley3)) - [#211](https://github.com/knative/operator/pull/211) 各种 linting 修复(感谢 [@markusthoemmes](https://github.com/markusthoemmes)) - [#235](https://github.com/knative/operator/pull/235) 添加降级后测试(感谢 [@houshengbo](https://github.com/houshengbo)) - [#257](https://github.com/knative/operator/pull/257) 将标签 `operator.knative.dev/release` 添加到操作员资源以用于发布(感谢 [@houshengbo](https://github.com/houshengbo))

了解更多

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

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