阿里云Knative当前已经支持0.18.3 版本,本文介绍Knative 0.18.3版本所做的变更内容和支持的特性。

说明 Knative Service的apiVersion推荐使用V1版本,V1alpha1和V1beta1版本将在Knative 0.19.0版本之后废弃。

版本解读

  • Knative 0.18.3版本功能的实现需要Kubernetes版本大于等于1.18。
  • 多容器支持。Knative Service支持在一个Pod里配置多个业务容器。
  • 支持基于Header的路由转发策略。在请求的Header中设置Knative-Serving-Tag: {revision-tag},结合Kourier网关,可以将请求自动转发到指定的版本上。通过该功能可以实现基于Header的灰度发布。
  • 兼容K8s的节点选择特性,该特性通过affinitynodeSelectortolerations参数配置。
  • Knative Service支持Dryrun功能,可以快速验证当前的Revision Template是否配置正确。在Template中可通过以下任意参数开启此特性:
    • features.knative.dev/podspec-dryrun: enabled
    • features.knative.dev/podspec-dryrun: strict
    说明 当创建Knative Service时:
    • features.knative.dev/podspec-dryrun设置成enabled,表示如果K8s支持Dryrun功能,则会执行Dryrun。如果K8s不支持Dryrun功能也会继续执行创建操作。
    • features.knative.dev/podspec-dryrun设置成strict,表示当K8s不支持Dryrun功能时会返回failure