解读Knative 0.17.0版本特性

前言

Knative 0.17.0 版本已于近期发布,对于 Knative v0.17.0 版本新特性,我们进行解读,让大家对 Knative 新版本快速了解。
Knative 0.17.0 支持 k8s 最小支持版本为:1.16。

Serving

Autoscaling-自动扩缩容

  • 1)支持Revision初始POD数设置
    在0.17.0之前的版本中,创建新的Revision(即使新Revision流量比例为0)默认会先创建出 1 个POD实例,新的POD创建完成之后,如果没有流量,缩容为 0。 其实大多数场景下,新的Revision创建完成之后不需要立刻创建出POD。从0.17.0开始引入 inital scale 参数,可以指定新的 Revision 为 0。

inital scale 参数可以通过注释设置:

autoscaling.internal.knative.dev/initialScale

核心 API

组件HA高可用支持

从0.17.0版本开始,默认开启组件HA,可以通过配置参数‘--disable-ha’ 关闭HA。

Knative Service 特性支持

  • 1) 对 affinity, nodeSelector, tolerations 和 securitycontext 进行了支持。对于该特性的支持比较意外,因为该特性很早就被提出过,但开始的社区的反馈是 serverless(no server) 场景下不应该关心节点的调度。目前来看结合实际的使用需求场景,最终社区做出了妥协。
  • 2) 新增全局最大扩容Pod配置参数max-value,当没有设置autoscaling.knative.dev/maxScale值时,使用该全局配置作为最大扩容Pod。
  • 3) 优化 Revision 版本回收机制。新增Revision版本最大数maximum限制,同时支持禁用基于时间的Revision回收策略。

Networking-网络

KIngress

  • 1)最大超时设置。对于gRPC stream处理超时的问题,默认超时时间调整为了48小时。
  • 2)支持域名重写(RewriteHost)。通过该特性可以实现自定义域名。以Istio实现为例,自定义域名‘vanity.com’通过‘rewrite’实现重定向。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: vanity-ingress
spec:
  gateways:
  - knative-serving/knative-ingress-gateway
  hosts:
  - vanity.com
  http:
  - match:
    - authority:
        prefix: vanity.com
      gateways:
      - knative-serving/knative-ingress-gateway
    rewrite:
      authority: helloworld-go.default.example.com
    route:
    - destination:
        host: cluster-local-gateway.istio-system.svc.cluster.local
        port:
          number: 80

Eventing

PingSource优化

0.17.0版本 PingSource 支持时区(time zone)设置

事件处理优化

在 In Memory Channel 和 Multi-Tenant Channel 中发送事件失败时,支持重试机制。

总结

Knative 0.17.0 版本中引入了版本初始化实例数设置以及对节点调度参数的支持(nodeSelector etc.), 表明Knative社区会更多的关注实际应用场景,相信后续有更多实用特性会提供出来。欢迎有兴趣的同学一起交流。

欢迎加入 Knative 交流群

解读Knative 0.17.0版本特性

上一篇:物联网平台网关设备+子设备接入平台演示


下一篇:RTC-实时音视频通信技术介绍与应用