火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.24 版本所做的变更说明。
表1:核心组件及说明
核心组件 | 当前版本号 | 注意事项 |
---|---|---|
Kubernetes | v1.24.17 | 无 |
Containerd Runtime | 1.6.21 | 无 |
ETCD | 3.5.5 | 无 |
CoreDNS | 1.8.6 | 无 |
表2:Kubernetes 版本与容器服务版本对应关系
Kubernetes 版本 | VKE 版本 | 发布说明 |
---|---|---|
v1.24.17 | vke.36 | 同步 Kubernetes 社区 v1.24.17 代码。 |
v1.24.15 | vke.35 | - 强化扩展调度器,支持感知 Vitual Kubelet Service 变化。 |
v1.24.15 | vke.34 | 强化扩展调度器,支持 NUMA 拓扑感知调度和 RDMA 拓扑感知调度。 |
v1.24.15 | vke.33 | 修复扩展调度器感知 vePFS 存储时不支持 Local Path PV 的问题。 |
v1.24.15 | vke.32 |
|
v1.24.15 | vke.31 | 修复扩展调度器插件初始化异常问题。 |
v1.24.15 | vke.30 | 优化核心组件发布规范。 |
v1.24.15 | vke.29 | 修复 Kubelet 重启导致的容器 Ready 状态变化问题。 |
v1.24.15 | vke.28 | 强化扩展调度器,支持 mGPU 抢占调度。 |
v1.24.15 | vke.27 | 强化扩展调度器,支持感知 VCI 资源库存。 |
v1.24.15 | vke.26 | 强化 API Server 自签名证书。 |
v1.24.15 | vke.25 |
|
v1.24.15 | vke.24 | 修复 runc 容器逃逸漏洞 CVE-2024-21626。 |
v1.24.15 | vke.23 |
|
v1.24.15 | vke.21 | 增强弹性资源优先级调度功能,支持按比例调度和触发 Cluster Autoscaler 扩容。 |
v1.24.15 | vke.20 | 修复扩展调度器配置 MultiPoint 插件时偶现 Pod 无法调度的问题。 |
v1.24.15 | vke.19 | 强化 API Server 参数配置,保证与社区版本的一致性。 |
v1.24.15 | vke.18 | 强化 API Server,优化参数配置方式。 |
v1.24.15 | vke.17 | 强化 API Server,修复漏洞 CVE-2023-44487 和 CVE-2023-39325。 |
v1.24.15 | vke.16 | 强化扩展调度器,避免缓存穿透 ETCD 特性。 |
v1.24.15 | vke.15 | 修复升级 Kubelet 后卸载存储卷异常的问题。 |
v1.24.15 | vke.14 | 强化扩展调度器,增强负载感知调度功能。 |
v1.24.15 | vke.13 |
|
v1.24.15 | vke.12 |
|
v1.24.10 | vke.11 | 强化 Kubelet,优化节点网络插件初始化逻辑。 |
v1.24.10 | vke.10 | 优化 Kubernetes 集群安装流程。 |
v1.24.10 | vke.9 | 修复扩展调度器初始化异常问题。 |
v1.24.10 | vke.8 | 优化扩展调度器配置。 |
v1.24.10 | vke.7 |
|
v1.24.10 | vke.6 | 强化 API Server,避免缓存穿透 ETCD。 |
v1.24.10 | vke.5 |
|
key="value"
形式的结构化日志便于解析分析。详细信息,请参见 Introducing Structured Logs。.spec.minReadySeconds
;StatefulSetMinReadySeconds 进入 Beta 阶段。详细信息,请参见 Minimum Ready Seconds for StatefulSets。maxUnavailable
参数,便于滚动更新时可以更快地停止 Pods。Ready
状态的 Pods 数量。.spec.OS
与节点 OS 标签不匹配的 Pods。Service.spec.ipFamilyPolicy
为必填项,使用双协议栈的 Service 必须指明ipFamilyPolicy
为“PreferDualStack”
或者“RequireDualStack”
。iptables-legacy
还是iptables-nft
。--forward-healthcheck-vip
支持将到 Service VIP 的健康检查流量转发到 kube-proxy 的健康检查服务。--root-hnsendpoint-name
指定根网络命名空间的 HNS 端点的名称。timeZone
,在开启特性 CronJobTimeZone 时,支持在特定的时区运行 CronJob。webhook_fail_open_count
指标用于监控 Webhook 失败。admission_webhook_request_total
指标,支持监控 Webhook 信息,包括 Webhook 名称、Admission 类型、请求动作、HTTP 状态码、请求是否被拒绝、请求资源的 Namespace 等。sync_proxy_rules_no_local_endpoints_total
,支持展示没有内部Endpoints 的服务数量。kubelet_volume_stats_health_abnormal
用于记录 Volume 健康状态。controller_admission_duration_seconds
、step_admission_duration_seconds
、webhook_admission_duration_seconds
、apiserver_current_inflight_requests
和apiserver_response_sizes
。除此之外,API Server 还新增了针对 LIST 请求的指标。pending_pods
、preemption_attempts_total
、preemption_victims
、schedule_attempts_total
、scheduling_attempt_duration_seconds
(原e2e_scheduling_duration_seconds
)、pod_scheduling_duration_seconds
、pod_scheduling_attempts
、framework_extension_point_duration_seconds
、plugin_execution_duration_seconds
和queue_incoming_pods_total
。evictions_total
代替evictions_number
指标。init
、join
和upgrade
命令中废弃了--experimental-patches
参数,--patches
和--config
不能混合使用。--log-file
参数。详细信息,请参见 kube-log-runner。scheduler_volume_scheduling_duration_seconds
。apiserver_longrunning_requests
指标代替废弃的指标apiserver_longrunning_gauge
。kubectl --dry-run
必须指定--dry-run=(server|client|none)
。Service.Spec.LoadBalancerIP
。--address
、--insecure-bind-address
、--port
、--insecure-port=0
。--port=0
和--address
。--audit-log-version
和--audit-webhook-version
仅支持audit.k8s.io/v1
。--network-plugin
,该启动参数仅当容器运行环境设置为 Docker 时才有效,会随着 Dockershim 一起删除。service annotation tolerate-unready-endpoints
,使用Service.spec.publishNotReadyAddresses
代替。metadata.clusterName
字段,并将在下一个版本中删除。net.ipv4.ip_local_port_range
范围有冲突的情况下,会偶发的 TCP 无法连接的情况,导致健康检查失败、业务异常等问题。升级前,请确保集群没有 NodePort 端口与任意节点net.ipv4.ip_local_port_range
范围存在冲突。详细信息,请参见Kubernetes 社区 PR。node-role.kubernetes.io/master
Label,使用node-role.kubernetes.io/control-plane
(在 Kubernetes v1.20 版本引入)替代。node-role.kubernetes.io/control-plane:NoSchedule
Taint,旧Taint node-role.kubernetes.io/master:NoSchedule
(在 Kubernetes v1.25 版本将被移除)保留。rbac.authorization.k8s.io/v1alpha1
,使用rbac.authorization.k8s.io/v1
。scheduling.k8s.io/v1alpha1
,使用scheduling.k8s.io/v1
。autoscaling/v2beta2
,HorizontalPodAutoscaler v2 进入 GA 阶段。client.authentication.k8s.io/v1alpha1
,使用client.authentication.k8s.io/v1
。CSIStorageCapacity.storage.k8s.io/v1beta1
,使用CSIStorageCapacity.storage.k8s.io/v1
。networking.k8s.io/v1alpha1
网络 API。admissionregisration.k8s.io/v1beta1
版本 API,使用该版本创建的 WebhookConfiguration,需尽快替换为admissionregisration.k8s.io/v1
版本,否则会导致配置创建失败。apiextensions.k8s.io/v1beta1
版本 API,使用该版本创建的自定义资源需尽快替换为apiextensions.k8s.io/v1
版本,否则会导致自定义控制器调谐失败。apiregistration.k8s.io/v1beta1
版本 API。使用该版本创建的 APIService 资源,需尽快替换为apiregistration.k8s.io/v1
版本,否则会导致扩展 API 服务失败。authentication.k8s.io/v1beta1
版本 API。使用该版本创建的资源需尽快使用authentication.k8s.io/v1
版本替代,否则会导致授权验证失败。authorization.k8s.io/v1beta1
版本 API。使用该版本创建的资源需尽快使用authorization.k8s.io/v1
版本替代,否则会导致授权验证失败。certificate.k8s.io/v1beta1
版本 API。使用该版本创建的资源需尽快使用certificate.k8s.io/v1
版本替代,否则会导致授权验证失败。coordination.k8s.io/v1beta1
版本 API。使用该版本创建的资源需尽快使用coordination.k8s.io/v1
版本替代,否则会导致选主失败,影响服务正常工作。networking.k8s.io/v1beta1
和extensions/v1beta1
版本 API。使用该版本创建的资源需尽快使用networking.k8s.io/v1
版本替代,否则会影响应用对外暴露服务。rbac.authorization.k8s.io/v1beta1
版本 API。用该版本创建的 RBAC 资源需尽快使用rbac.authorization.k8s.io/v1
版本替代,否则会影响应用集群内的权限服务。storage.k8s.io/v1beta1
版本 API。用该版本创建的 CSI 资源需尽快使用storage.k8s.io/v1
版本替代,否则会影响集群内的存储服务提供,使得集群内无法正常使用 CSI。scheduling.k8s.io/v1beta1
版本 API。用该版本创建的PriorityClass 资源需尽快使用scheduling.k8s.io/v1
版本替代,否则会导致操作失败。Service topologyKeys
字段实现服务流量拓扑感知的特性,由拓扑感知特性取代。关于 Kubernetes v1.24 版本的性能和功能演进的更多信息,请参见: