作者:Bach(才云)、bot(才云)
技术校对:星空下的文仔(才云)
美国工夫 12 月 8 日,Kubernetes v1.20 正式公布,这是 2020 年的第三个新版本,也是最初一个版本。 该版本蕴含 42 个加强性能:其中 11 个加强性能趋于稳定,15 个进入 Beta,16 个进入 Alpha。
之前扩大公布周期后,v1.20 公布周期复原到失常的 11 周。这是近来性能最密集的版本之一:Kubernetes 更新速度仍在放慢。该版本 Alpha 加强性能比稳固的加强性能更多,这表明在云原生生态系统中还有许多值得摸索的空间。
Major Themes
新版本次要围绕以下主题:
存储卷快照性能趋于稳定
当初提供了触发存储卷快照性能的规范办法,并容许用户以可移植的形式在 Kubernetes 环境或任何受反对的存储提供程序上合并快照操作。 同时,Kubernetes 快照原语可作为根底构建块,能提供 Kubernetes 开发企业级存储管理性能的能力,包含应用程序以及集群备份解决方案。
另外,快照反对须要 Kubernetes 发行厂商捆绑 Snapshot 控制器、Snapshot CRD 和验证 Webhook。反对快照性能的 CSI 驱动程序也要部署在集群上。
Kubectl Debug 进入 Beta
kubectl alpha debug 性能在 v1.20 进入 Beta 版,并更名为 kubectl debug。该性能能通过 kubectl 提供常见调试工作流的反对。 当初 kubectl 反对的故障排除计划包含:
- 通过创立应用其余容器镜像的 Pod 正本解决启动时工作负载解体的问题。
- 通过在 Pod 的新正本或长期容器(长期容器是一项默认不启用的 Alpha 性能。)应用调试工具增加新容器来解决 Distroless 容器的故障。
- 通过在主机命名空间中创立能运行并具备拜访主机文件系统权限的容器,对节点进行故障排除。
作为新的内置命令,kubectl debug 比任何名字带有“debug”的 kubectl 插件优先级都要高,因而必须重命名受影响的插件。
在 v1.20 中,不倡议持续应用 kubectl alpha debug。后续发行版中其也被删除,倡议更新脚本应用 kubectl debug。
Beta:API 优先级和公平性
v1.18 版本引入的 API 优先级和公平性(APF)性能当初在 Kubernetes v1.20 默认启用,它能让 kube-apiserver 按优先级对传入的申请进行分类。
IPV4/IPV6 Alpha 性能更新
IPv4/IPv6 双协定栈基于用户和社区反馈从新实现,当初既能够将 IPv4 与 IPv6 服务集群 IP 地址调配给单个服务,也能够在服务中实现单 IP 栈与双 IP 栈的切换。
GA:限度过程 PID
过程 ID(PID)是 Linux 主机上的根本资源,为防止主机不稳固,要达到工作限度与资源限度的均衡。
管理员须要一些机制来确保用户 Pod 不会导致 PID 耗尽,以防止主机守护程序(运行时、kubelet 等)进行运行。另外,也要确保在容器之间限度 PID,以确保不会对节点上其余工作负载造成影响。在一年前默认启用后,SIG Node 通过 SupportNodePidsLimit(node-to-pod PID 隔离)和 SupportPodPidsLimit(能在 Pod 限度 PID)将限度过程 PID 推向 GA。
Alpha:节点优雅敞开
用户和集群管理员心愿 Pod 以预约的 Pod 生命周期运行,包含 Pod 终止。但目前节点敞开时,Pod 不会遵循预期的 Pod 终止生命周期,并无奈失常终止,这可能会导致工作负载呈现问题。GracefulNodeShutdown 性能当初进入 Alpha,它能让 kubelet 晓得节点零碎敞开,从而在零碎敞开期间失常终止 Pod。
重要更新
以下是 v1.20 中值得关注的变动:
Dockershim 弃用
v1.20 将弃用 Dockershim,即 Docker 容器运行时接口(CRI),这意味着不再反对 Docker,并将在后续版本中删除。因为 Docker 镜像遵循凋谢容器倡导(OCI)镜像标准,所以 Docker 产生的镜像能在所有 CRI 兼容运行时的集群中失常应用。详情可见《Kubernetes 弃用 Docker 前因后果》。
Exec 探针超时解决
修改了长期存在的 exec 探针超时谬误,该 bug 可能会对现有 pod 定义造成影响。 在公布该修复程序之前,exec 探针未思考 timeoutSeconds 字段,并会无限期运行,甚至超过配置限度,直到返回后果。此次修复后,如果未指定值,探针会默认为 1 秒;如果探针工夫超过 1 秒,现有 Pod 定义可能无奈满足。此次修复还增加了一个名为 ExecProbeTimeout 的 feature gate,它能让集群操作员还原到以前的行为,但在后续发行版中,它将被锁定并删除。如果要复原以前的行为,要将该 feature gate 设置为 false。
其余更新
以下个性进入稳固
- RuntimeClass
- 内置 API 类型默认值
- 增加 Pod-Startup Liveness-Probe 提早
- 在 Windows 上反对 CRI-ContainerD
- SCTP 反对 Service
- 将 AppProtocol 增加到 Service 和 Endpoint
重要性能更新
#19 CronJobs:用于执行所有与工夫相干的操作,即备份,报告生成等。
公布 logo
对于许多人来说,2020 年是充斥挑战的一年,然而 Kubernetes 的贡献者在此版本中提供了创纪录的加强性能。这是一项微小的成就,因而公布负责人心愿在往年完结时有所成就,并向 Kubernetes 1.14-Caturnetes 致敬,包含一只名为“Humphrey”的“rad”猫。
本文只简略介绍了 Kubernetes v1.20 中的一些重要加强性能,以及企业用户和集体开发者可能会比拟关注的新性能。对于新版本的更多内容,请查看官网文档:
https://kubernetes.io/blog/20…
https://github.com/kubernetes…