v0.18 版本发布

发布时间:2020-10-09,更新时间:2023-08-03

宣布 Knative v0.18 版本发布

Knative 的新版本现已在多个组件中提供。请按照文档中关于 安装 Knative 的说明进行操作,以了解相应组件的安装步骤。

  • Kubernetes 最低版本已更改为 v1.17
  • 请参阅我们的 K8s 最低版本原则
  • Eventing API 已从 v1beta1 升级到 v1
  • Eventing 贡献源已迁移到一个新的 GitHub 组织 knative-extensions
  • kn CLI 现在具有命令别名和其他新功能。

在升级到最新版本之前,请务必查看 升级文档,以解决您当前版本可能遇到的任何问题。

Serving v0.18

Serving v1alpha1 & v1beta1 将在我们的下一个版本 (v0.19) 中停用 - 这适用于以下资源:服务、路由、修订、配置 - 您需要使用我们的 安装后作业 将这些资源的存储版本迁移到 v1。

重大更改:EnableVarLogCollection 行为 - 我们始终在用户容器的 /var/log 中挂载一个 emptyDir 卷。这会影响一些流行的容器镜像(例如 nginx),阻止它们启动。 - 在下一个版本 (v0.19) 中,我们计划更改此默认行为,仅在 EnableVarLogCollection 设置为 true 时挂载卷。 - 如果您在方法和时间表方面遇到问题/意见,请在 #7881 中与我们联系。

net-contour 已进入稳定状态

Kubernetes 最低版本更改为 1.17

核心 API

  • #9264 添加对投影卷中 serviceAccountToken 的支持。
  • #9072 添加 RuntimeClassName 功能标志。
  • #9325 修复了一个竞争条件,在该条件下,路由控制器会过早地报告就绪状态。
  • #9489 出于安全原因,不再支持通过 TLS 版本 1.0 或 1.1 传输镜像元数据的注册表。
  • #9455#9354#9442 摘要解析改进和超时。
  • #9335 响应式修订垃圾收集默认情况下处于开启(允许)状态。
  • knative/pkg#1464 减少 Webhook 指标的基数以减少内存使用量。

自动扩展

  • #9506#9502#9503#9566#9501#9488#9344#9338#9287#9184 提高代码库的性能、内存分配、可测试性和可读性
  • #9419#9426#9434 最大规模限制配置
  • #9211#9176 在 QueueProxy 中使用 Unix 套接字进行探测
  • #9133#9113 针对 Pod 抓取的随机洗牌,提高了我们在自动扩展程序中抓取 Pod 的多样性
  • 允许将配置传递到 Activator 中的缓存连接数量,并使用该配置
  • #9358 现在验证 Service 和 Configuration 顶层元数据中是否缺少自动扩展注释。这会为用户提供可操作的错误消息,但也可能导致旧的(错误的)YAML 开始无法接受。

网络

Eventing v0.18

Eventing API 已从 v1beta1 升级到 v1

升级所需的操作

  • #4031 升级之前必须运行预安装作业才能将 apiserversource 获取到 v1beta1 API。
  • #3936 将剩余的 messaging 资源的存储版本从 v1beta1 更改为 v1。
    • “Subscriptions.messaging.knative.dev”
    • 升级之前必须运行预安装作业才能将 messaging 资源获取到 v1 API。
  • #3951 将 pingsource 资源的存储版本从 v1alpha2 更改为 v1beta1 API
    • 升级之前必须运行预安装作业才能将 pingsource 资源获取到 v1beta2 API。
  • #3923 将 eventing 资源的存储版本从 v1beta1 更改为 v1。
    • “brokers.eventing.knative.dev”
    • “Triggers.eventing.knative.dev”
    • 升级之前必须运行预安装作业才能将 eventing 资源获取到 v1 API。
  • #3925 将 flows 资源的存储版本从 v1beta1 更改为 v1。
    • “Channels.messaging.knative.dev”
    • “Inmemorychannels.messaging.knative.dev”
    • 升级之前必须运行预安装作业才能将 messaging 资源获取到 v1 API。
  • #3924 将 flows 资源的存储版本从 v1beta1 更改为 v1。
    • “Parallels.flows.knative.dev”
    • “Sequences.flows.knative.dev”
    • 升级到 v1 API 的 flows.- 资源之前,您必须运行预安装作业。

新功能

  • #3962 允许通过 ENV 变量配置 MTChannelBroker TTL。
  • #4009 PingSource 适配器现在使用基于桶的领导者选举
  • #3987 PingSource 适配器部署现在可以在安装时自定义

错误修复

  • #4115 默认的指数退避持续时间现在与 DeliverySpec.BackoffDelay 注释中宣传的算法一致。用户需要采取行动来评估 Subscription.spec.delivery 中 DeliverySpec.BackoffDelay 设置是否仍然合适
  • #4112 频道和代理在非 2xx HTTP 状态码上正确重试
  • #4099 使 pingsource 适配器控制器只读
  • #3946 如果您创建了一个并行,然后之后添加分支,就会导致 panic。
  • #3897 在过滤器发送消息并失败或响应为空的情况下,它会 panic,因为它使用了它。
  • #3906 当 Webhook 失败时,测试有时会 flake。
  • #4042 订阅协调器将传递配置正确地传播到频道 (retrybackoffDelaybackoffPolicy)。
  • #3966 触发器协调器在触发器和所引用代理的并行更新期间正确地协调触发器。
  • #4030 当不协调不属于我自己的代理类的触发器时,会打印错误的消息,逻辑是正确的,只是错误的日志消息。
  • #3870 更新规范以包含可通道化的 v1。

Eventing 贡献 v0.18

代码已移至 knative-extensions Github 组织

需要采取的行动

  • knative/eventing#3924knative/eventing#3925 将 flows.- 资源的存储版本从 v1beta1 更改为 v1
    • channels.messaging.knative.dev
    • inmemorychannels.messaging.knative.dev
    • parallels.flows.knative.dev
    • sequences.flows.knative.dev
    • 升级之前必须运行预安装作业才能将 eventing 资源获取到 v1 API。

新功能

  • #1510 Kafka 频道和 Kafka 源支持 Kafka 2.6 (#1510, @pierDipi)

错误修复

  • #1536 现在使用 0 个副本预先创建了集群范围的 KafkaChannel 调度程序,并将随着第一个 KafkaChannel 的创建而扩展。升级时不需要任何手动操作。
  • #1533 当 kafkasource 进入“接收器未找到”状态时,接收器适配器将被删除。当接收器可用并准备好接收事件时,接收器适配器将被重新创建。

代码已移至不同的 Github 组织

  • #1576 AWSSQS 源工件已移至 https://github.com/knative-extensions/eventing-awssqs
  • #1574 Camel 工件已移至 https://github.com/knative-extensions/eventing-camel
  • #1585 Ceph 源工件已移至 https://github.com/knative-extensions/eventing-ceph
  • #1583 CouchDB 源工件已移至 https://github.com/knative-extensions/eventing-couchdb
  • #1573 GitHub 工件已移至 https://github.com/knative-extensions/eventing-github
  • #1584 GitLab 源工件已移至 https://github.com/knative-extensions/eventing-gitlab
  • #1587 Natss 工件已移至 https://github.com/knative-extensions/eventing-natss
  • #1586 Prometheus 源工件已移至 https://github.com/knative-extensions/eventing-prometheus
  • #1555 从此仓库中删除骆驼来源。将它移至 https://github.com/knative-extensions/eventing-camel
  • #3923 eventing.- 资源的版本从 v1beta1 更改为 v1
    • brokers.eventing.knative.dev
    • triggers.eventing.knative.dev
    • 升级之前必须运行预安装作业才能将 eventing 资源获取到 v1 API。

客户端 v0.18

Knative 客户端 kn 的 0.18.0 版本包含一些错误修复以及对 Knative 事件功能的额外支持

事件支持

kn channel 支持已通过 kn channel list-types 扩展,它向您显示集群中可用的所有频道类型。此信息可用于在使用 kn channel create 创建频道时选择类型。

现在可以使用 kn subscription 命令完全管理将接收器与频道连接的订阅。

别名

为了获得更好的用户体验,我们为常用的命令添加了一些别名

命令 别名
service ksvc, services
revision revisions
route routes
source sources
broker brokers
trigger triggers
channel channels
subscription subscriptions, sub
plugin plugins
list ls

其他更改

  • 您现在可以使用 --annotation-service--annotation-revision 来选择要放置注释的 Knative 服务的部分。使用 --annotation,您可以将注释添加到两部分,即 Knative 服务的注释和用于创建修订版本的 Pod 模板的注释。
  • 一个新的选项 --scale-init 允许指定在创建 Knative 服务时应创建的 Pod 的初始数量。默认情况下,此数字为 1,但如果您不想在服务创建期间创建 Pod,则可以将其设置为 0。

运营商 v0.18

新的运营商现在可以部署服务和事件组件的 v0.18 新版本。

错误修复

  • #202 在 OperatorHub 中发布运营商的文档
  • #299 不要等待 Ksvc 缩放到零

其他更改

  • #266 跳过网络入口部署的版本检查
  • #275 将 k8s 升级到 1.18
  • #273 添加 linting 配置并修复问题
  • #278 首先转换作业,以便可以覆盖映像
  • #280 将依赖项固定到 release-0.18

了解更多

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

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