Kubernetes 1.14:对 Windows 节点的生产级支持、Kubectl 更新、持久本地卷 GA

我们很高兴宣布 Kubernetes 1.14 发布,这是我们 2019 年的第一个版本!

Kubernetes 1.14 包含 31 项增强功能:10 项进入稳定版,12 项进入测试版,7 项全新功能。本次发布的主要主题是可扩展性和支持更多 Kubernetes 工作负载,其中三项主要功能已普遍可用,一项重要的安全功能已进入测试版。

本次发布中进入稳定版的增强功能比以往任何 Kubernetes 版本都多。这对于用户和运营商而言,在设定支持预期方面是一个重要的里程碑。此外,本次发布中还有值得注意的 Pod 和 RBAC 增强功能,将在下面的“其他值得注意的功能”部分进行讨论。

让我们深入了解此版本的主要功能

对 Windows 节点的生产级支持

到目前为止,Kubernetes 中的 Windows 节点支持一直处于测试阶段,许多用户得以尝试并了解 Kubernetes 对 Windows 容器的价值。Kubernetes 现在正式支持将 Windows 节点添加为工作节点并调度 Windows 容器,从而使庞大的 Windows 应用程序生态系统能够利用我们平台的力量。对基于 Windows 的应用程序和基于 Linux 的应用程序进行投资的企业无需寻找单独的编排器来管理其工作负载,从而无论操作系统如何,都能提高其部署的运营效率。

在 Kubernetes 中启用 Windows 容器的一些主要功能包括

  • 支持 Windows Server 2019 作为工作节点和容器
  • 支持使用 Azure-CNI、OVN-Kubernetes 和 Flannel 进行树外网络
  • 改进了对 Pod、服务类型、工作负载控制器和指标/配额的支持,以与为 Linux 容器提供的功能紧密匹配

值得注意的 Kubectl 更新

新的 Kubectl 文档和 Logo

kubectl 的文档已经从头开始重写,重点是使用声明式资源配置来管理资源。文档已作为一本独立书籍发布,并从主 k8s.io 文档(可在 https://kubectl.docs.kubernetes.io 获取)链接。

新的 kubectl 徽标和吉祥物(发音为 *kubee-cuddle*)显示在新的文档站点徽标上。

Kustomize 集成

kustomize 的声明式资源配置创作功能现已通过 `-k` 标志(例如,用于 `apply, get` 等命令)和 `kustomize` 子命令在 kubectl 中可用。Kustomize 帮助用户使用 Kubernetes 原生概念创作和重用资源配置。用户现在可以使用 `kubectl apply -k dir/` 将包含 `kustomization.yaml` 的目录应用到集群。用户还可以使用 `kubectl kustomize dir/` 将自定义的资源配置输出到标准输出,而无需应用它们。新功能已在 https://kubectl.docs.kubernetes.io 的新文档中详细说明。

kustomize 子命令将继续在 Kubernetes 拥有的 kustomize 仓库中开发。最新的 kustomize 功能将以频繁的发布节奏从独立的 kustomize 二进制文件(发布到 kustomize 仓库)中提供,并将在每个 Kubernetes 发布之前在 kubectl 中更新。

kubectl 插件机制进入稳定版

kubectl 插件机制允许开发人员以独立二进制文件的形式发布自己的自定义 kubectl 子命令。这可用于通过新的高级功能和附加的“瓷”(porcelain)扩展 kubectl(例如,添加 `set-ns` 命令)。

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

持久化本地卷现已普遍可用

此功能已升级到稳定版,使本地附加存储可用作持久卷源。分布式文件系统和数据库是持久化本地存储的主要用例,因为它们具有性能和成本优势。在云提供商上,本地 SSD 比远程磁盘提供更好的性能。在裸机上,除了性能之外,本地存储通常更便宜,并且使用它对于提供分布式文件系统是必不可少的。

PID 限制进入 Beta 版

进程 ID (PID) 是 Linux 主机上的基本资源。在不触及任何其他资源限制的情况下,很容易达到任务限制并导致主机不稳定。管理员需要机制来确保用户 Pod 不会引起 PID 耗尽,从而阻止主机守护进程(运行时、kubelet 等)运行。此外,重要的是要确保 Pod 之间的 PID 受到限制,以确保它们对节点上的其他工作负载的影响有限。

管理员能够通过将每个 Pod 的 PID 数量默认设置为 Beta 功能来提供 Pod 到 Pod 的 PID 隔离。此外,管理员可以通过节点可分配来为用户 Pod 保留一定数量的可分配 PID,从而作为 Alpha 功能启用节点到 Pod 的 PID 隔离。社区希望在下一个版本中将此功能升级到 Beta 版。

其他值得注意的功能更新

Pod 优先级和抢占使 Kubernetes 调度器能够优先调度更重要的 Pod,并且当集群资源不足时,它会删除不太重要的 Pod 以腾出空间给更重要的 Pod。重要性由优先级指定。

Pod 就绪门引入了一个扩展点,用于外部对 Pod 就绪的反馈。

强化默认 RBAC 发现集群角色绑定将发现从默认允许未经身份验证访问的 API 集中移除,从而提高了 CRD 的隐私性,并普遍改善了默认集群的默认安全态势。

可用性

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

功能博客系列

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

  • 第一天 - Windows Server 容器
  • 第二天 - 强化默认 RBAC 发现集群角色绑定
  • 第三天 - Kubernetes 中的 Pod 优先级和抢占
  • 第四天 - PID 限制
  • 第五天 - 持久化本地卷

发布团队

此版本是通过数百名个人贡献技术和非技术内容而实现的。特别感谢由 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 社区广播的吗?在我们的每周社区会议和以下渠道中分享您的声音。

感谢您一直以来的反馈和支持。