火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.26 版本所做的变更说明。
表1:核心组件及说明
核心组件 | 当前版本号 | 注意事项 |
---|---|---|
Kubernetes | v1.26.15 | Kubernetes v1.25 和 v1.26 对测试版本 API 进行废弃和移除,使用新版本需进行兼容性检查。详情请参见本文下方 API 版本变更。 |
Containerd Runtime | 1.6.21 | Kubernetes v1.26 Runtime 版本必须大于等于 1.6 版本。 |
ETCD | 3.5.5 | 无 |
CoreDNS | 1.9.3 | 无 |
表2:Kubernetes 版本与容器服务版本对应关系
Kubernetes 版本 | VKE 版本 | 发布说明 |
---|---|---|
v1.26.15 | vke.24 | 同步 Kubernetes 社区 v1.26.15 代码。 |
v1.26.10 | vke.23 | - 强化扩展调度器,支持感知 Vitual Kubelet Service 变化。 |
v1.26.10 | vke.22 | 强化扩展调度器,支持本地存储感知调度。 |
v1.26.10 | vke.21 | 强化扩展调度器,支持 NUMA 拓扑感知调度和 RDMA 拓扑感知调度。 |
v1.26.10 | vke.20 | 修复扩展调度器感知 vePFS 存储时不支持 Local Path PV 的问题。 |
v1.26.10 | vke.19 |
|
v1.26.10 | vke.18 | 修复扩展调度器插件初始化异常问题。 |
v1.26.10 | vke.17 | 优化核心组件发布规范。 |
v1.26.10 | vke.16 | 修复 Kubelet 重启导致的容器 Ready 状态变化问题。 |
v1.26.10 | vke.15 | 强化扩展调度器,支持 mGPU 抢占调度。 |
v1.26.10 | vke.14 | 强化扩展调度器,支持感知 VCI 资源库存。 |
v1.26.10 | vke.13 | 强化 API Server 自签名证书。 |
v1.26.10 | vke.12 |
|
v1.26.10 | vke.11 | 修复 runc 容器逃逸漏洞 CVE-2024-21626。 |
v1.26.10 | vke.10 | 增强弹性资源优先级调度功能,支持按比例调度和触发 Cluster Autoscaler 扩容。 |
v1.26.10 | vke.9 | 修复扩展调度器配置 MultiPoint 插件时偶现 Pod 无法调度的问题。 |
v1.26.10 | vke.8 | 强化 API Server 参数配置,保证与社区版本的一致性。 |
v1.26.10 | vke.7 | 同步原生 Kubernetes 社区 v1.26.10 版本代码。 |
v1.26.6 | vke.6 | 强化 API Server,修复漏洞 CVE-2023-44487 和 CVE-2023-39325。 |
v1.26.6 | vke.5 | 强化扩展调度器,避免缓存穿透 ETCD 特性。 |
v1.26.6 | vke.4 | 修复扩展调度器重调度 Pod 真实负载同步异常问题。 |
v1.26.6 | vke.3 | 强化扩展调度器,支持调度过程中将节点信息注入 Pod。 |
k8s.gcr.io
迁移到registry.k8s.io
。详情请参见 k8s.gcr.io Redirect to registry.k8s.io。Pod Status
字段将PodHasNetwork
置为True
,表示 Pod 运行时沙箱被成功初始化创建,并已配置网络。当PodHasNetwork
置为True
后,Kubelet 才会开始拉取容器镜像,因此该字段可用于更准确地反映容器初始化延迟的服务水平指标(SLI)。详情请参见 PodHasNetwork 和 Initialized Condition 的区别。KUBE-MARK-DROP
、KUBE-MARK-MASQ
、KUBE-POSTROUTING
,优化 kube-proxy 的性能。详情请参见 Cleaning up IPTables Chain Ownership、Kubernetes’s IPTables Chains Are Not API。resource.k8s.io/v1alpha1
API 组,需要为待管理的特定资源安装驱动程序。详情请参见 Alpha API For Dynamic Resource Allocation。out-of-service
污点,将 Pod 移动到新的运行节点。待节点恢复后还需要手动移除该污点。.spec.unhealthyPodEvictionPolicy=AlwaysAllow
来驱逐不健康 Pod 的行为不受 PDB 干扰。该特性处于 Aplha 阶段,需要启用 PDBUnhealthyPodEvictionPolicy 特性门控。详情请参见 不健康 Pod 的驱逐策略。spec
字段,支持从其他优先级的规则借用限流槽位。详情请参见 PriorityLevelConfigurati ons。scheme
和headers
字段配置,支持设定自定义的 Headers 和使用 HTTPS,可以在 Kubelet 配置--feature-gates=ConsistentHTTPGetHandlers=false
以关闭该功能。"storageclass.kubernetes.io/is-default-class"
设置多个 StorageClass,Admission Plugin 会选择出最新的 StorageClass 作为默认值而不再抛出异常。--concurrent-horizontal-pod-autoscaler-syncs
来设定 HPA(Horizontal Pod Autoscaler)控制器的 Workers 数。deleting-pods-qps
、deleting-pods-burst
、register-retry-count
参数。--service-account-api-audiences
启动参数,替换为--api-audiences
。--prune-whitelist
参数,替换为--prune-allowlist
。--master-service-namespace
参数。--cascade
、--filename
、--force
、--grace-period
、--kustomize
、--recursive
、--timeout
、--wait
。userspace
代理模式不再受 Linux 或 Windows 支持(详情请参见 Remove kube-proxy userspace modes)。Linux 用户应使用iptables
或ipvs
,Windows 用户应使用kernelspace
,当前使用--mode userspace
会失败。Windows winkernel kube-proxy 不再支持 Windows HNS v1 APIs。batch/v1beta1
版本 API 的 CronJob(定时任务),继续提供 Kubernetes v1.21 版本开始可用的batch/v1
版本 API。discovery.k8s.io/v1beta1
版本 API 的 EndpointSlice(端点切片),继续提供 Kubernetes v1.21 版本开始可用discovery.k8s.io/v1
版本 API。events.k8s.io/v1beta1
版本 API 的 Event,继续提供 Kubernetes v1.21 版本开始可用batch/v1
版本 API,具体字段变更如下:
type
字段只能设置为Normal
和Warning
之一。involvedObject
字段被更名为regarding
。action
、reason
、reportingController
和reportingInstance
字段,在创建新的events.k8s.io/v1
版本 API 的 Event 中都是必需的字段。eventTime
,而不是已被弃用的firstTimestamp
字段(该字段已被更名为deprecatedFirstTimestamp
,且不允许出现在新的events.k8s.io/v1
Event 对象中)。series.lastObservedTime
,而不是已被弃用的lastTimestamp
字段(该字段已更名为deprecatedLastTimestamp
,且不允许出现在新的events.k8s.io/v1
Event 对象中)。series.count
,而不是已被弃用的count
字段(该字段已更名为deprecatedCount
,且不允许出现在新的events.k8s.io/v1
Event 对象中)。reportingController
,而不是已被弃用的source.component
字段(该字段已更名为deprecatedSource.component
,且不允许出现在新的events.k8s.io/v1
Event 对象中)。reportingInstance
,而不是已被弃用的source.host
字段(该字段已被更名为deprecatedSource.host
,且不允许出现在新的events.k8s.io/v1
Event 对象中)。autoscaling/v2beta2
版本 API。policy/v1beta1
版本 API,继续提供policy/v1
版本 API。node.k8s.io/v1beta1
版本 API,继续提供node.k8s.io/v1
版本 API。flowcontrol.apiserver.k8s.io/v1beta1
版本 API,继续提供flowcontrol.apiserver.k8s.io/v1beta2
和flowcontrol.apiserver.k8s.io/v1beta3
。DisableCompression
字段,默认关闭。关于 Kubernetes v1.26 版本的性能和功能演进的更多信息,请参见: