2019年第一版本,Kubernetes 1.14 今天正式发布。
Kubernetes 1.14有31个增强功能:GA功能的10个,beta版12个,新增加功能7个。1.14版本主题是可扩展性,支持更多Kubernetes上的工作负载,其中三个主要功能正式推出,以及一个重要的安全功能转向beta。
与之前发布的Kubernetes版本相比,1.14版本中的更多功能逐渐稳定。对于用户和运营商而言,这是大家期望的重要里程碑。此外,新版本中还有需要注意的Pod和RBAC增强功能,这些增强功能将在下面的“其他值得注意的功能”部分中讨论。
让我们深入了解此版本的主要功能吧:
生产级别的Windows节点支持
之前版本中,Kubernetes中的Windows节点一直是处于beta阶段,可以让大家进行实验并查看Kubernetes for Windows容器的价值。现在,Kubernetes1.14版本正式支持将Windows节点添加为工作节点并使用Windows容器,使庞大的Windows应用程序的生态系统,能够利用Kubernetes平台的强大功能。无论什么样操作系统,企业不论是使用基于Windows的应用还是基于Linux的应用都不必寻找单独的协调器来管理其工作负载了,从而提高整个部署的运营效率。
在Kubernetes中使用Windows容器的一些主要功能包括:
- 支持Windows Server 2019工作节点的容器
- 支持Azure-CNI,OVN-Kubernetes和Flannel树形网络
- 改进了对pod,service类型,workload controllers和metrics/quotas的支持,以便紧密匹配与Linux容器提供的功能
Kubectl的更新
新增的Kubectl文档和Logo说明
kubectl的文档已经从头开始重写了,重点是使用声明性Resource Config来管理资源。该文档已作为从k8s.io分支的独立站点发布:
(https://kubectl.docs.kubernetes.io)。
Kustomize Integration
kustomize的声明性Resource Config的创作功能,可以通过kubectl的-k(例如,apply, get)和kustomize子命令获取。Kustomize使用Kubernetes原生概念帮助用户创作和重用Resource Config。用户现在可以使用以下目录将目录应用于kustomization.yaml群集kubectl apply -k dir/。用户还可以向stdout发出自定义的Resource Config,而无需通过它们kubectl kustomize dir/应用。新功能在https://kubectl.docs.kubernetes.io的新文档中。
新的kubectl logo和吉祥物(发音是:kubee-cuddle)新的docs站点上显示。
将在kustomize repo中继续开发kustomize子命令。新的kustomize功能会以独立的kustomize二进制文件(发布到kustomize repo),并在Kubernetes版本发布之前在kubectl中更新。
kubectl插件机制逐渐稳定
kubectl插件机制允许开发人员以独立二进制文件的形式发布自己的自定义kubectl子命令。这可以用于扩展具有新的更高级功能的kubectl和porcelain(例如添加set-ns命令)。
插件必须使用kubectl-前缀名称,并存在用户的$ PATH中。对于1.14GA版本,插件机制已经大大简化,并且类似于git插件系统。
持久化本地Volumes已经GA
持久化本地Volumes功能已经稳定。分布式文件系统和数据库是由于性能和成本而导致持久性本地存储的主要用例。在云环境上,本地SSD比远程磁盘能提供更好的性能。在裸机上,除了性能之外,本地存储通常也更便宜些,并且是配置分布式文件系统的必要条件。
PID限制升级为Beta阶段
进程ID(PID)是Linux主机上的基本资源。在不触及任何其他资源限制的情况下,达到任务限制并导致主机不稳定,是非常简单的。管理员需要一些机制来确保用户pod不会导致PID耗尽,从而避免影响主机守护程序(runtime,kubelet等)运行。此外,需要确保在pod之间限制PID,以避免它们对节点上的其他工作负载的影响。
管理员可以通过beta功能中提供的,设置每个Pod的PID数量,为来提供pod-to-pod PID隔离。此外,在alpha功能中,管理员可以通过节点可分配的方式为用户pod保留大量可分配的PID,从实现节点到pod的PID隔离。社区系统在下一版本中将此功能转为Beta测试版。
其他值得注意更新的功能
Pod priority和抢占使Kubernetes调度程序能够首先调度更重要的Pod,当集群资源不足时,它会删除不太重要的pod,以便为更重要的Pod创建空间。重要性由priority指定。
Pod Readiness Gates为pod准备就绪提供了外部反馈的扩展点。
加强默认RBAC功能;删除默认情况下允许进行未经身份验证的访问,从而提高CRD的隐私性以及默认群集的安全状态。
Kubernetes 1.14 可以在GitHub 下载了,
https://github.com/kubernetes/kubernetes/releases/tag/v1.14.0
系列博客
如果你有兴趣更深入地探索这些功能,请关注下周我们推出的Kubernetes系列文章,其中我们将重点介绍以下功能:
第1天 – Windows Server容器
第2天 – 加强默认的RBAC clusterrolebindings发现
第3天 – Kubernetes的Pod priority和抢占
第4天 – PID限制
第5天 – 持久性化的本地卷
发布团队
今天我们发布了1.14版本,在此特别感谢Google高级测试工程师Aaron Crickenberger领导的发布团队。团队43名成员作出了重要贡献,从文档到测试、验证及功能的完整性。
随着Kubernetes社区的发展,我们的发布过程代表了开源软件开发协作的一个惊人演示。Kubernetes社区持续有新用户用户加入。这种增长创造了一个积极的反馈循环,创建一个更有活力的社区,让更多的贡献者提交代码,Kubernetes拥有超过28,000位贡献者,以及社区活跃人员超过57,000人。
原文链接:
https://kubernetes.io/blog/2019/03/25/kubernetes-1-14-release-announcement/
译者:曹辉