阿里云容器服务 Kubernetes 版严格遵循社区一致性认证。本文介绍ACK发布Kubernetes 1.32版本的主要变更说明,包括升级注意事项、重大变更、功能特性、弃用功能和API、特性门控等。
组件版本说明
下表为ACK集群核心组件版本的支持情况。
核心组件 | 版本号 |
Kubernetes | 1.32.1-aliyun.1 |
etcd | v3.5.15 |
containerd | 1.6.36 |
CoreDNS | v1.11.3.2-f57ea7ed6-aliyun |
CSI | 升级至组件当前支持的最新版本。详细信息,请参见组件变更记录csi-plugin、csi-provisioner。 |
CNI | Flannel v0.15.1.22-20a397e6-aliyun |
Terway和TerwayControlplane为v1.10.0及以上 |
功能变更
自1.32版本起,通过OpenAPI接口CreateCluster创建ACK集群时,集群kube-proxy的Proxy Mode(服务转发模式)默认模式由iptables切换为IPVS。该变更只影响新建集群,存量集群升级至1.32后不会切换kube-proxy的Proxy Mode。
自1.32版本起,kube-apiserver将不再支持
TLS_RSA_WITH_AES_256_GCM_SHA384
和TLS_RSA_WITH_AES_128_GCM_SHA256
TLS加密套件。存量集群升级至1.32后将自动应用此变更。自1.32版本起,启用RRSA特性时,将不再修改 kube-apiserver的
--api-audiences
参数配置,继续沿用启用前的配置值。该变更只影响未启用RRSA特性的集群,已启用RRSA特性的存量集群升级至1.32后不会应用此变更。ServiceAccount的Annotation
kubernetes.io/enforce-mountable-secrets
在1.32移除。建议使用独立的命名空间来隔离对Secret的访问。DRAControlPlaneController特性门控自1.26进阶至Alpha,默认关闭,在1.32移除。如果开启了此特性并使用了该功能,请在集群升级前删除相关资源,避免升级后工作负载出现异常。详细信息,请参见#128003。
功能特性
WatchList特性门控进阶至Beta,默认启用。通常大量List操作会导致控制面资源消耗显著增加,启用WatchListClient特性后,client-go客户端可以使用流式请求代替全量List,降低控制面资源消耗。kube-controller-manager组件默认启用该功能。更多信息,请参见Enhancing Kubernetes API Server Efficiency with API Streaming。
RelaxedEnvironmentVariableValidation特性门控进阶至Beta,默认开启。该特性放宽了对环境变量名称的验证规则,支持几乎所有的可打印ASCII字符(不包括=)作为环境变量名称。
优化Pod状态显示信息。当镜像拉取失败后,Pod的
status.containerStatuses[*].state.waiting
字段会记录镜像拉取失败的原因(ImagePullBackOff
)和具体失败信息。CustomResourceFieldSelectors特性门控在1.32进入GA,默认启用。该特性支持在CustomResourceDefinition(CRD)中启用
selectableFields
,包括list、watch和deletecollection,以更加高效、更精确地过滤CRD资源。StatefulSetAutoDeletePVC特性门控在1.32进入GA,默认启用。该特性提供对StatefulSet中PVC删除的精细控制,允许在StatefulSet明确不需要PVC时自动清理PVC,降低孤立PVC对StatefulSet的影响。更新StatefulSet和节点维护过程中不对PVC产生影响,不触发自动清理。
JobManagedBy特性门控进阶至Beta,默认启用。该特性允许通过配置
spec.managedBy
字段将Job交由外部控制器来接管Job的调谐(Reconciliation)工作,使得Job调度和管理更加灵活。managedBy
字段不可配置为kubernetes.io/job-controller
,即Kubernetes内置的控制器保留值。调度器的每个插件都集成QueueingHint回调函数,方便调度器获取Pod重新入队的建议,快速判断Pod是否需要重新入队,以减少不必要的调度重试,从而提升调度吞吐量。更多信息,请参见QueueingHint Brings a New Possibility to Optimize Pod Scheduling。
RecoverVolumeExpansionFailure特性门控进阶至Beta,默认启用。PVC扩容失败时通常需要管理员介入手动恢复,恢复操作繁琐。该特性允许用户直接手动调小PVC的
.spec.resources
,有助于PVC快速恢复且数据不丢失。具体方式,请参见Recovering from Failure when Expanding Volumes。AuthorizeWithSelectors和AuthorizeNodeWithSelectors特性门控进阶至Beta,后者需要搭配前者使用。启用后,AuthorizeNodeWithSelectors允许节点鉴权器使用更细粒度的选择算符(例如
fieldSelector
和labelSelector
)进行鉴权,提高了Kubernetes授权系统的灵活性。kubelet仅有最小权限,只能读取自己的节点对象和绑定到自己节点的Pod。更多信息,请参见Using Node Authorization。客户端请求Pod日志的参数PodLogOptions添加
Stream
字段,允许流式请求容器日志。这意味着日志可以实时传输给客户端,无需等待整个日志文件下载完成。但需注意,Stream
和TailLines
不可共用。优化JobController,极大提升Job的更新和删除效率,尤其是在大量使用Job的场景下。更多信息,请参见#126567、#127228和#127378。
优化kube-proxy,Service更新时使用
fieldSelector: clusterIP!=None
,以避免监听Headless Service,减少不必要的带宽占用。更多信息,请参见#126769。
弃用API
flowcontrol.apiserver.k8s.io/v1beta3
版本的FlowSchema和PriorityLevelConfiguration在1.32版本中废弃。推荐迁移至flowcontrol.apiserver.k8s.io/v1
API版本(自1.29起可用)。flowcontrol.apiserver.k8s.io/v1
版本中PriorityLevelConfiguration的spec.limited.nominalConcurrencyShares
字段在未指定时默认为30(如显式配置为0
,则不会被更改为30
)。
参考链接
关于Kubernetes 1.32完整的变更记录,请参见CHANGELOG-1.32、Kubernetes v1.32: Penelope。