火山引擎容器服务(VKE)严格遵循社区一致性认证。本文介绍容器服务发布 Kubernetes v1.20 版本所做的变更说明。
注意
容器服务将于北京时间 2024年6月30日 起不再提供 Kubernetes v1.20 版本技术支持。详细说明,请参见 集群版本公告。
表1:核心组件及说明
| 核心组件 | 当前版本号 | 注意事项 |
|---|---|---|
| Kubernetes | v1.20.15 | 无 |
| Containerd Runtime | 1.6.21 | 无 |
| ETCD | 3.4.13 | 无 |
| CoreDNS | 1.7.0 | 无 |
表2:Kubernetes 版本与容器服务版本对应关系
| Kubernetes 版本 | VKE 版本 | 发布说明 |
|---|---|---|
v1.20.15 | vke.29 |
|
| v1.20.15 | vke.28 | 修复 runc 容器逃逸漏洞 CVE-2024-21626。 |
| v1.20.15 | vke.27 | 强化 Kubelet,支持根据调度侧的分配结果进行设备分配。 |
| v1.20.15 | vke.25 | 增强弹性资源优先级调度功能,支持按比例调度和触发 Cluster Autoscaler 扩容。 |
| v1.20.15 | vke.24 | 强化 API Server 参数配置,保证与社区版本的一致性。 |
| v1.20.15 | vke.23 | 强化 API Server,优化参数配置方式。 |
| v1.20.15 | vke.22 | 强化 API Server,修复漏洞 CVE-2023-44487 和 CVE-2023-39325。 |
| v1.20.15 | vke.21 | 强化扩展调度器,避免缓存穿透 ETCD 特性。 |
| v1.20.15 | vke.20 | 强化扩展调度器,增强负载感知调度功能。 |
| v1.20.15 | vke.19 | 修复扩展调度器重调度 Pod 真实负载同步异常问题。 |
v1.20.15 | vke.18 |
|
| v1.20.15 | vke.17 | 强化 Kubelet,优化节点网络插件初始化逻辑。 |
| v1.20.15 | vke.16 | 优化 Kubernetes 集群安装流程。 |
| v1.20.15 | vke.15 | 修复扩展调度器初始化异常问题。 |
v1.20.15 | vke.14 |
|
v1.20.15 | vke.13 |
|
| v1.20.15 | vke.12 | 强化 Kubelet,优化 Reserve PID。 |
| v1.20.15 | vke.11 | 强化 API Server,避免缓存穿透 ETCD。 |
| v1.20.15 | vke.10 | 强化扩展调度器,支持负载感知调度。 |
v1.20.15 | vke.9 |
|
| v1.20.15 | vke.8 | 支持 Capacity 调度。 |
| v1.20.15 | vke.7 | 强化扩展调度器在大量 Pending Pod 场景下的性能。 |
| v1.20.15 | vke.6 | 强化扩展调度器,支持 mGPU 算力分配策略。 |
| v1.20.15 | vke.5 | 强化 Kubelet,支持节点 mGPU 大显存场景。 |
v1.20.15 | vke.4 |
|
| v1.20.15 | vke.3 | 强化 API Server proxy 白名单。 |
| v1.20.15 | vke.2 | 强化 API Server,禁止 proxy 0.0.0.0。 |
v1.20.12 | vke.1 | 面向容器服务提供的 Kubernetes v1.20 初始版本。 |
弃用 Dockershim。
Dockershim 正式被弃用,不再对 Docker 进行支持,社区也将在后续版本中移除。该变更与集群所使用的镜像(Image)无关,Docker 生成的遵循 OCI 规范的镜像可以继续在兼容 CRI 的运行时中运行。更多信息,请参见 Dockershim Deprecation FAQ。
Exec 探测超时处理。
修复了关于 Exec 探测超时的问题,该问题可能会影响现有 Pod 的定义。在此之前,Exec 探测器不考虑timeoutSeconds字段。通过本次修复,如果未指定值,将使用默认值,默认值为 1 秒。如果探测时间超过 1 秒,那么现有的 Pod 定义需用更新和指定timeoutSeconds字段。新引入的ExecProbeTimeout特性门控所提供的修复,可以恢复集群操作到之前的行为,但这种行为将在后续版本中锁定并删除 。要恢复之前的行为,需要把ExecProbeTimeout设置为false。更多信息,请参见 Configure Liveness, Readiness and Startup Probes - Configure Probes。
API 优先级和公平性( APF )进入 Beta 阶段。
API 优先级和公平性(API Priority and Fairness)功能,将在 v1.20 版本默认启用,允许 kube-apiserver 按优先级对传入请求进行分类。更多信息,请参见 API Priority and Fairness。
Kubectl Debug 功能进入 Beta 阶段。kubectl alpha debug功能达到测试状态,并被替换为kubectl debug。 该功能直接从 kubectl 提供对常见调试工作流的支持。kubectl alpha debug已弃用,并将在后续的版本中删除。更多信息,请参见 Debug Running Pods。
卷快照操作功能达到稳定状态。
此功能提供了一种触发卷快照操作的标准方法,并允许用户以可移植的方式在任何 Kubernetes 环境和支持的存储 provider 上进行合并快照的操作。此外,这些 Kubernetes 快照原语充当基本构建块,为 Kubernetes 的开发,提供了高级企业级存储管理功能的能力。
PID 限制功能达到 GA。SupportNodePidsLimit(节点到 pod 的 PID 隔离)和SupportPodPidsLimit( 限制每个 Pod 的 PID 的能力)现在均已达到 GA 状态。
部分 API 版本变更。
Ingress 和 IngressClass 资源的extensions/v1beta1 API 和networking.k8s.io/v1beta1 API 已经废弃,并且将在后续 v1.22 版本被移除。请使用networking.k8s.io/v1替代。
Alpha 功能更新:IPv4/IPv6。
重新实现 IPv4/IPv6 以支持双栈服务,允许将 IPv4 和 IPv6 服务集群 IP 地址分配给单个服务,还允许服务从单 IP 堆栈转换为双 IP 堆栈,反之亦然。
Alpha 功能:节点优雅关闭。
用户和集群管理员希望 Pod 遵循预期的 Pod 生命周期,包括 Pod 终止。GracefulNodeShutdown使 Kubelet 监听到节点系统关闭事件,从而在系统关闭期间优雅地终止 Pod。
关于 Kubernetes v1.20 版本的性能和功能演进的更多信息,请参见 CHANGELOG-1.20.md。