Kubernetes 1.14 现已正式发布,这是 Kubernetes 在 2019 年的首次更新!
Kubernetes 1.14 由 31 个增强功能组成:10 个功能现进入 Stable 阶段,12 个功能进入 Beta 测试阶段,还有 7 个全新新增功能。Kubernetes 1.14 的主题是“可扩展性”,相较于此前发布的任何 Kubernetes 版本,此版本拥有最多的进入 Stable 阶段的增强功能。
此次新版的最重大更新无疑为对 Windows 节点的生产级支持。除此之外还有 Kubectl、Persistent Local Volumes、PID 限制等等的更新,下文中我们将逐一道来。
Windows 节点的生产级支持
随着 Kubernetes 1.14 的发布,Kubernetes 中的 Windows 节点支持现已处于 Beta 测试阶段,用户可以更多地进行实验,进一步体验到“Kubernetes for Windows 容器”的价值。
Kubernetes 现在正式支持将 Windows 节点添加为工作节点,并可以调度 Windows 容器。庞大的 Windows 应用程序生态系统,现在也能够利用 Kubernetes 平台的强大功能了。同时使用 Windows 应用程序和 Linux 应用程序的企业,不必再寻找两种单独的编排方案来分别管理其 Windows 和 Linux 工作负载,整个部署的运营效率都能得到极大提高。
此次更新,Kubernetes 中的 Windows 容器支持的主要功能包括:
工作节点和容器可以使用 Windows Server 2019
使用 Azure-CNI、OVN-Kubernetes 和 Flannel 支持树外网络连接
改进了对 pod、服务类型、工作负载控制器和指标 / 配额的支持,以便与 Linux 容器提供的功能紧密匹配
在 Kubernetes Windows 网络连接方面,目前支持的 Azure-CNI、OVN-Kubernetes 和 Flannel 三种网络插件中,Azure-CNI 只能在 Azure 使用,OVN-Kubernetes 需要硬件支持,因而大多数用户都会使用 Flannel,Flannel 也是社区主推的网络插件。Flannel 对 Windows 的支持是 Rancher Labs 的工程师 Frank Mai 实现的,他对 Windows 网络支持的贡献包含两个方面,一个是对 CNI 的支持,包括 win-bridge 和 win-overlay,以及 meta/flannel 的支持;另外一方面是对 Flannel 的 Windows 支持。
Rancher Labs 工程师 Frank 是 Windows Flannel 网络的主要贡献者
Kubectl 的重要更新
全新的 Kubectl 文档和 Logo
kubectl 的文档已经从头开始重写,重点关注于使用声明性 Resource Config 来管理资源。该文档已以独立书籍格式、作为独立站点发布,其格式为书籍,链接可从 k8s.io 文档获得:
https://kubectl.docs.kubernet…。
同时,kubectl 拥有了新的徽标和吉祥物(发音为 kubee-cuddle):
Kustomize 集成
用户现在可以通过 - k 标志(例如 apply、get 等命令)和 kustomize 子命令,在 kubectl 中获得 kustomize 的声明性资源配置创建功能。Kustomize 使用 Kubernetes 原生概念帮助用户创建和重用 Resource Config。用户现在可以使用 kubectl apply -k dir / 将目录与 kustomization.yaml 一起应用于集群。用户还可以直接向 stdout 发出自定义的资源配置,而无需再通过 kubectl kustomize dir / 才能应用它们。新功能都可以在文档中进一步查看:https://kubectl.docs.kubernet…
kustomize 子命令将继续在 Kubernetes 所拥有的 kustomize repo 中开发。最新的 kustomize 功能将以独立的 kustomize 二进制文件形式(发布到 kustomize repo)、以更频繁的节奏进行发布,并将在每次 Kubernetes 发布之前在 kubectl 中更新。
kubectl 插件机制逐迈入 Stable 状态
kubectl 插件机制让开发人员可以以独立二进制文件的形式发布自己的自定义 kubectl 子命令。开发人员可以使用新的更高级的功能和额外的 porcelain(例如,添加 set-ns 命令)来进一步扩展 kubectl 了。
插件必须具有 kubectl- 名称前缀并存在于用户的 $ PATH 中。此次 GA,插件机制已经大大简化,并且和 git 插件系统类似。
Persistent Local Volumes 现已 GA
Persistent Local Volumes 功能现已迈入 Stable 状态,用户可以使用本地连接存储来作为持久卷源。持久化本地存储的最主要用例是分布式文件系统和数据库,主要是由于性能和成本的原因。在云提供商上,本地 SSD 与远程磁盘相比拥有着更好的性能。在裸机上,除了性能之外,本地存储通常也更便宜,并且使用它是配置分布式文件系统的必要条件。
PID 限制已迈入 Beta 阶段
进程 ID(PID)是 Linux 主机上的基本资源。在其他资源尚未达到最大限制值的情况下,大多数用户并不希望因为达到任务限制而导致主机不稳定。管理员需要一些机制来确保用户 pod 不会导致 PID 耗尽,因为 PID 耗尽会阻止主机守护进程(如 runtime、kubelet 等)运行。此外,在 pod 之间限制 PID,以确保它们对节点上的其他工作负载不会造成太大影响,这一点是很重要的。
管理员现在可以通过默认每个 pod 的 PID 数量来提供 pod-to-pod 的 PID 隔离,这一功能已是 Beat 状态。此外,管理员还可以通过可分配的节点为用户 pod 保留大量可分配的 PID,从而将节点到 pod 的 PID 隔离作为 alpha 功能启用。在 Kubernetes 的下一个新版本中,该功能有望转为 Beta 版。
其他值得关注的功能更新
Pod 优先级与抢占机制:这一功能使 Kubernetes 调度程序能够首先调度更重要的 Pod,当集群资源不足时,它会删除不太重要的 pod,以便为更重要的 Pod 创建空间。Pod 的重要性由优先级指定。
Pod Readiness Gates:为 pod 的准备就绪提供了外部反馈的扩展点。
加强默认的 RBAC discovery clusterrolebindings:从 API 集中移除 discovery,现在默认情况下不再允许进行未经身份验证的访问,从而提高 CRD 的隐私性以及默认集群的默认安全状态。
下载使用 Kubernetes 1.14
Kubernetes 1.14 包含的有所功能更新,请查看 Release Notes:
https://github.com/kubernetes…
你可以在 GitHub 上下载使用全新的 Kubernetes 1.14:
https://github.com/kubernetes…
Rancher 作为一个开源的企业级 Kubernetes 平台,可以统一管理所有云上、所有发行版、所有 Kubernetes 集群。优化简洁的 UI,简单易用的操作体验,同时还拥有集成的 CI/CD、监控、日志、RBAC 等等增强功能,是企业落地 Kubernetes 的不二之选。Rancher 将在四月发布的 Rancher 2.2.1 版本将添加对 Kubernetes 1.14 的支持,敬请期待!
后续我们还将分享更多有关 Kubernetes 1.14 中 Windows 容器及网络的技术文章,记得保持关注哟