Kubernetes 1.20的发布,这是我们在2020年发布的第三个也是最终的版本!这个版本包含了42个增强:11个增强已经稳定,15个增强进入beta, 16个增强进入alpha。
在上一个扩展的发布周期之后,1.20的发布周期又回到了11周的正常节奏。这是一段时间以来功能最密集的版本之一:Kubernetes的创新周期仍呈上升趋势。这个版本更多的是alpha而不是稳定的增强,这表明在云本地生态系统中还有很多需要探索的地方。
卷快照操作趋于稳定
该特性提供了一种触发卷快照操作的标准方法,并允许用户以可移植的方式在任何Kubernetes环境和支持的存储提供程序上合并快照操作。
此外,这些Kubernetes快照原语充当基本构建块,解除了为Kubernetes开发高级、企业级存储管理特性(包括应用程序或集群级备份解决方案)的能力。
请注意,快照支持要求Kubernetes分发程序绑定快照控制器、快照目录和验证webhook。还必须在集群上部署支持快照功能的CSI驱动程序。
Kubectl对毕业生进行测试调试
kubectl alpha调试功能在1.20中升级到beta版,成为kubectl调试。该特性直接从kubectl提供了对常见调试工作流的支持。此版本kubectl支持的故障排除场景包括:
通过创建使用不同容器映像或命令的pod副本来排除在启动时崩溃的工作负载。
通过在pod的新副本中添加带有调试工具的新容器或使用临时容器来排除无源容器的故障。(临时容器是一个alpha特性,默认情况下不启用。)
通过创建在主机名称空间中运行并能够访问主机文件系统的容器来对节点进行故障排除。
注意,作为一个新的内置命令,kubectl debug优先于任何名为“debug”的kubectl插件。您必须重命名受影响的插件。
使用kubectl alpha调试的调用现在是不赞成的,将在后续版本中删除。更新脚本以使用kubectl调试。有关kubectl调试的更多信息,请参见调试运行的Pods。
测试版:API优先级和公平性
在1.18中引入的Kubernetes 1.20现在默认支持API优先级和公平性(APF)。这允许kube-apiserver按优先级级别对传入请求进行分类。
Alpha更新:IPV4/IPV6
IPv4/IPv6双栈已经重新实现,以支持基于用户和社区反馈的双栈服务。这允许将IPv4和IPv6服务集群的IP地址分配给单个服务,也允许将一个服务从单个IP栈转换为双IP栈,反之亦然。
GA:过程PID限制稳定性
进程id是Linux主机上的基本资源。达到任务限制而不触及任何其他资源限制并导致主机不稳定是很简单的。
管理员需要一些机制来确保用户pods不会导致pid耗尽,从而阻止主机守护进程(运行时、kubelet等)运行。此外,务必确保在pods之间限制pid,以确保它们对节点上的其他工作负载的影响有限。在默认启用一年之后,SIG节点在SupportNodePidsLimit(节点到豆荚PID隔离)和SupportPodPidsLimit(限制每个豆荚PID的能力)上将PID限制转变为GA。
优雅的节点关闭
用户和集群管理员希望pod遵守预期的pod生命周期,包括pod终止。当前,当一个节点关闭时,pods没有遵循预期的pod终止生命周期,并且不能正常终止,这可能会导致一些工作负载问题。优雅的nodeshudown特写现在是阿尔法。优雅的nodeshudown使kubelet能够意识到节点系统的关闭,从而在系统关闭期间能够优雅地终止pods。
重大变化
Dockershim弃用
Dockershim,用于Docker的容器运行时接口(CRI)垫片正在被弃用。对Docker的支持已被否决,并将在未来的版本中删除。Docker生成的映像将继续在兼容CRI的运行时在您的集群中工作,因为Docker映像遵循Open Container Initiative (OCI)映像规范。Kubernetes社区已经写了一篇关于弃用的详细博客文章,并有专门的FAQ页面。
执行探针超时处理
一个长期存在的关于可能影响现有pod定义的exec探测超时的错误已经得到修复。在此修复之前,exec探测不考虑字段超时时间。相反,探测将无限期地运行,甚至超过配置的最后期限,直到返回结果为止。通过这个更改,如果没有指定一个值,将应用缺省值1秒,如果探测时间超过1秒,现有的pod定义可能不再足够。在此修复中添加了一个名为ExecProbeTimeout的特性gate,它使集群操作符能够恢复到以前的行为,但在后续版本中将锁定并删除该特性。为了恢复到以前的行为,集群操作人员应该将此特性门设置为false。
请查看关于配置探针的更新文档以了解更多细节。
其他的更新
毕业到稳定
RuntimeClass
内置API类型默认值
添加豆荚-启动激活-探针延迟
在Windows上支持CRI-ContainerD
对服务的SCTP支持
将AppProtocol添加到服务和端点
显著特点更新
的计划
发布说明
您可以在发行说明中查看1.20发行版的完整细节。
可用性的释放
Kubernetes 1.20可以在GitHub上下载。有一些很好的资源可以帮助您开始使用Kubernetes。您可以在Kubernetes主站点上查看一些交互式教程,或者使用带有kind的Docker容器在您的机器上运行一个本地集群。如果您想从头开始构建集群,请查看Kelsey Hightower编写的Kubernetes the Hard Way教程。