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工程师麦玮嘉是Windows Flannel网络的主要贡献者
Kubectl 的重要更新
全新的Kubectl文档和Logo
kubectl的文档已经从头开始重写,重点关注于使用声明性Resource Config来管理资源。该文档已以独立书籍格式、作为独立站点发布,其格式为书籍,链接可从k8s.io文档获得:
https://kubectl.docs.kubernetes.io。
同时,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.kubernetes.io
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/kubernetes/blob/master/CHANGELOG-1.14.md#kubernetes-v114-release-notes
你可以在GitHub上下载使用全新的Kubernetes 1.14:
https://github.com/kubernetes/kubernetes/releases/tag/v1.14.0
Rancher作为一个开源的企业级Kubernetes平台,可以统一管理所有云上、所有发行版、所有Kubernetes集群。优化简洁的UI,简单易用的操作体验,同时还拥有集成的CI/CD、监控、日志、RBAC等等增强功能,是企业落地Kubernetes的不二之选。Rancher将在四月发布的Rancher 2.2.1版本将添加对Kubernetes 1.14的支持,敬请期待!
后续我们还将分享更多有关Kubernetes 1.14中Windows容器及网络的技术文章,记得保持关注哟~
About Rancher Labs
Rancher Labs由硅谷云计算泰斗、CloudStack之父梁胜创建,致力于打造创新的开源软件,帮助企业在生产环境中运行容器与Kubernetes。旗舰产品Rancher是一个开源的企业级Kubernetes平台,是业界首个且唯一可以管理所有云上、所有发行版、所有Kubernetes集群的平台。解决了生产环境中企业用户可能面临的基础设施不同的困境,改善Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题,是企业落地Kubernetes的不二之选。
Rancher在全球拥有超过一亿的下载量,超过20000家企业客户。全球知名企业如中国人寿、华为、中国平安、民生银行、兴业银行、上汽集团、海尔、米其林、天合光能、丰田、本田、霍尼韦尔、金风科技、普华永道、海南航空、厦门航空、恒大人寿、中国太平、巴黎银行、美国银行、HSCIS恒生指数、中国水利、暴雪、CCTV等均是Rancher的付费客户。