ACK灵骏发布Kubernetes 1.20版本说明

阿里云容器服务Kubernetes版(ACK)严格遵循社区一致性认证。本文介绍ACK灵骏托管版集群发布Kubernetes 1.20版本所做的变更说明。

版本升级说明

ACK针对Kubernetes 1.20版本提供了全链路的组件优化和升级。

核心组件

版本号

升级注意事项

Kubernetes

1.20.11-aliyun.1

  • 当您的ACK集群升级到1.20及以上Kubernetes版本前,请确保集群内部署的Admission Webhook组件自签发的服务端证书已经包含必要的SAN字段。更多信息,请参见Helm Chart配置示例

  • 删除selfLink字段,不再支持。更多信息,请参见Stop setting SelfLink in kube-apiserver

  • 若您的集群使用FlexVolume存储插件且安装了alicloud-nas-controller组件,在将低版本集群升级至Kubernetes 1.20版本前,请将alicloud-nas-controller的镜像升级到v1.14.8.17-7b898e5-aliyun或更高版本。同时,由于FlexVolume存储插件已经弃用,建议您将FlexVolume迁移至CSI插件。具体操作,请参见迁移Flexvolume至CSI

Docker Runtime

19.03.5

Containerd Runtime

1.5.10

etcd

3.4.3

CoreDNS

v1.9.3.6-32932850-aliyun

  • 新版本删除了对已弃用插件Upstream的兼容。如果Corefile配置项中包含Upstream插件,Upstream插件会在升级过程中被安全、自动地删除。

  • 更新指标(Metrics)名称。如果您的监控系统依赖于CoreDNS指标,请注意修改。更多信息,请参见Metric Changes

  • 此次升级不会对业务造成影响,支持的新特性如下:

    • 支持EndpointSlices资源的监听。

    • 支持以IPv6地址进行DNS查询。

NVIDIA Container Runtime

3.13.0

版本解读

资源变更与弃用

  • 【弃用】废弃Docker运行时:Docker运行时的支持在1.20被标记为废弃,目前您可以继续在集群中使用Docker。社区计划在后续版本中移除。该变动与集群所使用的容器镜像(Image)无关。您依然可以使用Docker构建您的镜像。更多信息,请参见Dockershim Deprecation FAQ

  • 【弃用】对于专有版的Master节点标签,ACK默认使用node-role.kubernetes.io/control-plane,同时在后续版本(不包含1.20)废弃使用node-role.kubernetes.io/master

  • 【弃用】删除selfLink字段,不再支持。更多信息,请参见Stop setting SelfLink in kube-apiserver

  • 【弃用】Ingress和IngressClass资源的extensions/v1beta1 API和networking.k8s.io/v1beta1 API已经废弃,并且会在1.22版本之后被移除。请使用networking.k8s.io/v1替代。

    说明

    由于ACK中默认使用的Nginx Ingress Controller组件的限制,ACK中Ingress和IngressClass资源的networking.k8s.io/v1beta1 API可以正常被使用。

  • 【变更】集群内部署的Admission Webhook组件自签发的服务端证书需包含必要的SAN字段。当您的ACK集群升级到1.20及以上Kubernetes版本前,请确保集群内部署的Admission Webhook组件自签发的服务端证书已经包含必要的SAN字段。更多信息,请参见Helm Chart配置示例

功能增强

  • kubelet修复探测超时时间对EXEC探测方式不准的问题。修复之后默认的EXEC探测方式的探测超时时间默认为1秒(超时时间较短)。如果您未对EXEC探测方式的探测超时时间设置特定值,建议您加上此配置。

  • API优先级和公平性( APF )是Kubernetes默认开启的测试版(Beta)特性。您可以通过此特性对不同的请求进行限制和优先级划分。更多信息,请参见API Priority and Fairness

  • 端点切片(Endpoint Slices)特性默认启动。从1.19开始,kube-proxy默认启用Endpoint Slices,支持更大规模的集群。更多信息,请参见endpoint-slices

  • 不可修改ConfigMap和Secret。不可修改ConfigMap和Secret特性进入测试版(Beta)。如果设置ConfigMap或Secret为不可变,将不再允许修改,以降低kube-apiserver压力。更多信息,请参见Immutable ConfigMaps

ACK灵骏托管版集群对Kubernetes 1.20版本的增强

管控面增强

  • 观测性:对Request、Watch等机制增加了诸多指标(Metrics),增加了Master组件的可观测性。

  • 稳定性:增加对存储层(etcd)的保护,避免了集群启动时,过多请求直接穿透到etcd,增强了系统的稳定性。

  • 性能优化:通过增加索引,加速了List请求,减少kube-apiserver CPU消耗。

性能优化

KubeProxy:1.20.11版本中KubeProxy兼容了Aliyun Linux2(kernel-4.19.91-23)及以上的版本,在开启IPVS模式时,不设置conn_reuse_mode为0。更多信息,请参见IPVS

参考链接