Kubernetes 1.14:为 Windows 节点提供生产级支持、Kubectl 更新、持久本地卷 GA
我们很高兴宣布 Kubernetes 1.14 的发布,这是我们 2019 年的第一个版本!
Kubernetes 1.14 包含 31 项增强功能:10 项转为稳定版,12 项处于 Beta 版,以及 7 项全新的功能。此版本的主要主题是可扩展性,以及支持 Kubernetes 上更多的负载,其中三项主要功能转为正式可用,以及一项重要的安全功能转为 Beta 版。
此版本中转为稳定版的增强功能比之前的任何 Kubernetes 版本都多。这对于用户和操作员在设定支持预期方面来说,是一个重要的里程碑。此外,此版本中还有值得注意的 Pod 和 RBAC 增强功能,这将在下面的“其他值得注意的功能”部分中讨论。
让我们深入了解此版本的关键功能
Windows 节点的生产级支持
到目前为止,Kubernetes 中的 Windows 节点支持一直处于 Beta 版,允许许多用户尝试并了解 Kubernetes 对 Windows 容器的价值。Kubernetes 现在正式支持添加 Windows 节点作为工作节点和调度 Windows 容器,从而使庞大的 Windows 应用程序生态系统能够利用我们平台的功能。投资基于 Windows 的应用程序和基于 Linux 的应用程序的企业不必寻找单独的协调器来管理其工作负载,从而提高其部署的运营效率,无论操作系统是什么。
在 Kubernetes 中启用 Windows 容器的一些关键功能包括
- 支持 Windows Server 2019 作为工作节点和容器
- 支持使用 Azure-CNI、OVN-Kubernetes 和 Flannel 进行树外网络
- 改进了对 Pod、服务类型、工作负载控制器和指标/配额的支持,以与 Linux 容器提供的功能紧密匹配
值得注意的 Kubectl 更新
新的 Kubectl 文档和徽标
kubectl 的文档已从头开始重写,重点是使用声明式资源配置管理资源。该文档已发布为独立站点,格式为一本书,并且从主 k8s.io 文档链接(网址为 https://kubectl.docs.kubernetes.io)。
新的 kubectl 徽标和吉祥物(发音为 kubee-cuddle)显示在新的文档站点徽标上。
Kustomize 集成
kustomize 的声明式资源配置编写功能现在可通过 kubectl 中的 -k
标志(例如,用于 apply, get
之类的命令)和 kustomize
子命令获得。Kustomize 帮助用户使用 Kubernetes 原生概念编写和重用资源配置。用户现在可以使用 kubectl apply -k dir/
将包含 kustomization.yaml
的目录应用于集群。用户还可以使用 kubectl kustomize dir/
将自定义资源配置输出到 stdout,而无需应用它们。新功能记录在新的文档中,网址为 https://kubectl.docs.kubernetes.io
kustomize 子命令将继续在 Kubernetes 拥有的 kustomize 存储库中开发。最新的 kustomize 功能将可以从独立的 kustomize 二进制文件(发布到 kustomize 存储库)中获得,并以频繁的发布节奏发布,并且将在每个 Kubernetes 版本之前在 kubectl 中进行更新。
kubectl 插件机制转为稳定版
kubectl 插件机制允许开发人员以独立二进制文件的形式发布自己的自定义 kubectl 子命令。这可以用来扩展 kubectl,使其具有新的高级功能和附加的门面(例如,添加 set-ns
命令)。
插件必须具有 kubectl-
名称前缀,并且存在于用户的 $PATH 中。GA 的插件机制已得到显着简化,并且类似于 git 插件系统。
持久本地卷现在为 GA
此功能转为稳定版,使本地连接的存储可用作持久卷源。分布式文件系统和数据库是持久本地存储的主要用例,这归因于性能和成本。在云提供商上,本地 SSD 的性能优于远程磁盘。在裸机上,除了性能之外,本地存储通常也更便宜,并且使用它是配置分布式文件系统的必要条件。
PID 限制正在转为 Beta 版
进程 ID (PID) 是 Linux 主机上的基本资源。在未达到任何其他资源限制的情况下,很容易达到任务限制,并导致主机不稳定。管理员需要使用机制来确保用户 Pod 不会引起 PID 耗尽,从而阻止主机守护程序(运行时、kubelet 等)运行。此外,重要的是要确保在 Pod 之间限制 PID,以确保它们对节点上的其他工作负载的影响有限。
管理员可以通过将每个 Pod 的 PID 数默认为 Beta 功能来提供 Pod 到 Pod 的 PID 隔离。此外,管理员可以通过预留一些可分配的 PID 给用户 Pod 来启用节点到 Pod 的 PID 隔离(作为 Alpha 功能),这可通过节点可分配来实现。社区希望在下一个版本中将此功能转为 Beta 版。
其他值得注意的功能更新
Pod 优先级和抢占 使 Kubernetes 调度程序可以首先调度更重要的 Pod,并且当集群资源不足时,它会删除不太重要的 Pod,从而为更重要的 Pod 创建空间。重要性由优先级指定。
Pod 就绪门为 Pod 就绪的外部反馈引入了一个扩展点。
加强默认 RBAC 发现 clusterrolebindings 从默认允许未经身份验证访问的 API 集中删除发现,从而提高了 CRD 的隐私以及默认集群的整体默认安全状况。
可用性
Kubernetes 1.14 可在 GitHub 上下载。要开始使用 Kubernetes,请查看这些 交互式教程。您还可以使用 kubeadm 轻松安装 1.14。
功能博客系列
如果您有兴趣更深入地探索这些功能,请下周回来查看我们的 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 后,其研发效率提高了 100% 以上,部署效率提高了 280%。
- VSCO 发现,迁移到持续集成、容器化和 Kubernetes 后,速度得到了显着提高。从代码完成到在真实基础设施上部署到生产环境的时间,对于典型服务来说,从 1-2 周缩短到 2-4 小时。
- NAV 迁移到 Kubernetes,基础设施成本降低了 50%,部署次数从每天 10 次增加到每天 50 次,提高了 5 倍,资源利用率从 1% 提高到 40%。
Kubernetes 是否正在帮助您的团队?与社区分享您的故事。
生态系统更新
- Kubernetes 正在 CNCF 下 参与 GSoC 2019。查看 CNCF 的 GitHub 页面上 2019 年的完整项目创意列表。
- CNCF 2018 年度报告回顾了 Kubernetes 和基金会的增长、社区参与、生态系统工具、测试一致性项目、KubeCon 等。
- 在 KubeCon + CloudNativeCon 北美 2018 的 8,000 名参会者中,73% 是首次参加 KubeCon 的人,突显了 Kubernetes 和云原生技术的巨大增长和新的兴趣。会议透明度报告。
KubeCon
全球最大的 Kubernetes 聚会 KubeCon + CloudNativeCon 即将于 2019 年 5 月 20-23 日在巴塞罗那举行,并于 2019 年 6 月 24-26 日在上海(与开源峰会同期举行)举行。这些会议将包含技术会议、案例研究、开发者深入探讨、沙龙等! 立即注册!
网络研讨会
请于太平洋时间 4 月 23 日上午 10 点加入 Kubernetes 1.14 发布团队成员,了解此版本的主要功能。 在此注册。
参与其中
参与 Kubernetes 最简单的方法是加入与您兴趣相关的众多特别兴趣小组(SIG)之一。想向 Kubernetes 社区广播某些内容吗?请在我们的每周社区会议上,以及通过以下渠道分享您的声音。
感谢您一直以来的反馈和支持。
- 在 Stack Overflow 上发布问题(或回答问题)
- 加入 Discuss 上的社区讨论
- 在 Twitter 上关注我们 @Kubernetesio 获取最新更新
- 加入 Slack 上的社区
- 分享您的 Kubernetes 故事