手记

Kubernetes 1.14版本发布

本文翻译自《Kubernetes 1.14: Production-level support for Windows Nodes, Kubectl Updates, Persistent Local Volumes GA》。

今天,我们高兴地宣布Kubernetes 1.14版本的正式亮相,这也是我们在2019年的首个发布版本!

Kubernetes 1.14版本由31项增强功能组成,具体包括:10项稳定版功能,12项beta测试功能,以及7项全新功能。此次版本的核心主题在于可扩展性,以及在Kubernetes上支持更多工作负载。本轮共有三项主要功能迎来GA版本,另有一项重要安全功能步入beta测试阶段。

与此前发布的各个Kubernetes版本相比,这一次进入稳定阶段的增强功能数量达到了历史新高。对于用户与运营人员而言,这无疑是一个重要的里程碑。此外,1.14版本当中还迎来了多项值得关注的Pod与RBAC增强功能,我们将在后文中“其它值得关注的功能”章节中对此做出讨论。

下面,让我们深入了解此版本中的各大主要功能:

Windows节点的生产级支持

在这儿之前,Kubernetes对Windows节点一直处于beta测试阶段,旨在允许众多用户以实验性方式体验Kubernetes for Windows容器的实际价值。如今,Kubernetes开始正式支持将Windows节点添加为工作节点并部署Windows容器,从而确保庞大的Windows应用程序生态系统得以利用我们平台提供的强大功能。这意味着以往在Windows应用程序与Linux应用程序层面投入大量资金的企业不必再寻求独立的协调器管理自身工作负载,而能够不再受到具体操作系统类型的影响提升整体部署的运营效率。

本次Kubernetes为Windows容器带来的核心功能特性包括:

  • 支持将Windows Server 2019引入工作节点与容器

  • 支持采用Azure-CNI、 OVN- Kubernetes以及Flannel的树外网络

  • 改进了对Pod、服务类型、工作负载控制器以及指标/配额的支持能力,以便与Linux容器的自有功能实现更为紧密的匹配


值得关注的Kubectl更新

新的Kubectl说明文档与徽标

Kubectl的说明文档经过重写,其重点在于利用声明性Resource Config实现资源管理。这份文档目前以独立站点的形式发布,采用电子书格式,并在k8s.io文档中提供对应链接(具体请访问 https://kubectl.docs.kubernetes.io)。

您也将在新的文档站点中看到新的kubectl徽标与吉祥物(音为kubee-cuddle)设计外观。

Kustomize集成

Kustomize的声明性Resource Config创作功能现在可以通过-k标记(适用于apply及get等命令)以及Kustomize子命令在kubectl中获取。Kustomize旨在帮助用户创作及复用包含Kubernetes各原生概念的Resource Config。用户现在能够利用kubectl apply -k dir/将拥有kustomization.yaml的目录适用于集群。此外,用户也可以将定制化Resource Config发送至stdout,而无需通过kubectl kustomize dir/加以应用。这些新的功能被记录在新的说明文档当中,具体请参阅https://kubect.docs.kubernetes.io

我们还将继续通过Kubernetes的kustomize repo对Kustomize子命令进行开发。最新的Kustomize功能将以独立的Kustomize二进制文件(发布至kustomize repo)的形式更为频率地发布,且在每一轮Kubernetes发布之前在kubectl中得以更新。

kubectl插件机制逐步趋于稳定

kubectl插件机制允许开发人员以独立二进制文件的形式发布自己的自定义kubectl子命令。这可以用于扩展具有新的更高级功能的kubectl和额外的瓷器(例如添加set-ns命令)。

插件必须具有kubectl-名称前缀并存在于用户的$ PATH中。对于GA,插件机制已经大大简化,并且类似于git插件系统。

持久本地卷迎来GA版本

这项功能正逐渐稳定,允许用户将本地连接存储作为持久卷来源。考虑到实际性能与成本要求,分布式文件系统与数据库往往成为持久性本地存储的主要用例。与云服务供应商相比较,本地SSD一般可提供超越远程磁盘的性能水平。而与裸机方案相比,除了性能之外,本地存储通常成本更低,亦是配置分布式文件系统的一项必要条件。

PID限制正转向beta测试阶段

进程ID(简称PID)属于Linux主机上的一种基本资源。毫无疑问,我们无法接受在未出现任何其它资源限制的情况下,因为进程ID不足而影响任务运行,甚至导致主机稳定性降低。管理员需要相关机制以确保用户Pod中的PID不会被耗尽,否则各类主机守护程序(包括运行时与kubelet等)都将受到影响。此外,管理员还需要确保在各Pod之间限制PID,从而保证其不致影响到运行在节点上的其它工作负载。

在目前的beta功能中,管理员可以对每个Pod中的PID数量进行预定义,从而实现Pod与Pod间的PID隔离。此外,管理员还可以通过node allocatable为用户Pod保留大量可供分配的PID,即以alpha测试功能的方式实现类似的Pod与Pod间PID隔离。我们计划在下一版本当中将此项功能转为beta测试版。

更多其它值得关注的功能

Pod优先级和抢占使Kubernetes调度程序能够首先调度更重要的Pod,当集群资源不足时,它会删除不太重要的pod,以便为更重要的Pod创建空间。重要性由优先级指定。

Pod Readiness Gates为pod准备就绪提供了外部反馈的扩展点。

加强默认RBAC发现clusterrolebindings会从API 集中删除发现,默认情况下允许进行未经身份验证的访问,从而提高CRD的隐私性以及默认群集的默认安全状态。

可用性

Kubernetes 1.14可从GitHub下载。要开始使用Kubernetes,请查看这些交互式教程。您也可以使用kubeadm轻松安装1.14 。

功能博客系列

如果您有兴趣更深入地探索这些功能,请查看下周我们的5天Kubernetes系列,其中我们将重点介绍以下功能的详细演练:

  • 第1天 - Windows Server容器

  • 第2天 - 加强默认的RBAC发现clusterrolebindings

  • 第3天 - 在Kubernetes的Pod优先级和抢占

  • 第4天 - PID限制

  • 第5天 - 持续的本地卷

发布团队

通过数百名提供技术和非技术内容的个人的努力,这一发布成为可能。特别感谢Google高级测试工程师Aaron Crickenberger领导的发布团队。发布团队中的43个人协调了发布的许多方面,从文档到测试,验证和功能完整性。

随着Kubernetes社区的发展,我们的发布过程代表了开源软件开发协作的一个惊人演示。Kubernetes继续迅速获得新用户。这种增长创造了一个积极的反馈循环,让更多的贡献者提交代码,创建一个更有活力 迄今为止,Kubernetes拥有超过28,000名个人贡献者,以及超过57,000人的活跃社区。

项目速度

CNCF继续完善DevStats,这是一个雄心勃勃的项目,可视化项目中的无数贡献。K8s DevStats说明了主要公司贡献者的贡献细分,以及一系列令人印象深刻的预配置报告,包括从个人贡献者到拉取请求生命周期时间的所有内容。在过去一年中,平均每月有381家不同的公司和超过2,458名个人为Kubernetes捐款。查看DevStats,了解有关Kubernetes项目和社区整体速度的更多信息。

用户亮点

已建立的全球性组织正在大规模生产Kubernetes。最近发布的社区用户故事包括:

Kubernetes能帮助你的团队吗?与社区分享您的故事

生态系统更新

KubeCon

世界上最大的Kubernetes聚会,KubeCon + CloudNativeCon将于2019年5月20日至23日和上海(与开源峰会共同举办)于2019年6月24日至26日在巴塞罗那举行。这些会议将包括技术会议,案例研究,开发人员深潜,沙龙等等!立即注册

网络研讨会

4月23日上午10点,加入Kubernetes 1.14发布团队的成员,了解该版本的主要功能。在这里注册。

参与其中

参与Kubernetes的最简单方法是加入符合您兴趣的众多特殊兴趣小组(SIG)之一。你有什么想要向Kubernetes社区广播的吗?在我们的每周社区会议上,通过以下渠道分享您的声音。

感谢您的持续反馈和支持。

-------

讲师主页:tonybai_cn
实战课:《Kubernetes实战:高可用集群搭建,配置,运维与应用》
免费课:《Kubernetes基础:开启云原生之门》

1人推荐
随时随地看视频
慕课网APP