今天,我们高兴地宣布Kubernetes 1.14版本的正式亮相,这亦是我们在2019年当中进行的首次发布!
Kubernetes 1.14版本由31项增强功能组成,具体包括:10项稳定版功能,12项beta测试功能,以及7项全新功能。此次版本的核心主题在于可扩展性,以及在Kubernetes上支持更多工作负载。本轮共有三项主要功能迎来通用版本,另有一项重要安全功能步入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与附加porcelain(例如添加set-ns命令)实现更多新的高级功能。
各插件必须采用kubectl-作为命名前缀,并保存在用户的$PATH当中。在通用版本中,插件机制已经迎来大幅简化,目前其整体效果类似于Git插件系统。
持久本地卷迎来通用版本
这项功能正逐渐稳定,允许用户将本地连接存储作为持久卷来源。考虑到实际性能与成本要求,分布式文件系统与数据库往往成为持久性本地存储的主要用例。与云服务供应商相比较,本地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的clusterrolebingdings发现能力,其移除了原本默认可通过未授权访问的API集发现功能,旨在提升CRD隐私性以及默认集群的总体安全水平。
推出时间
目前Kubernetes 1.14已可通过GitHub[1]进行下载。要开始使用Kubernetes,我们建议您首先查看各交互式教程[2]。您也可以利用kubeadm[3]轻松安装本次发布的1.14版本。
相关链接:
https://github.com/kubernetes/kubernetes/releases/tag/v1.14.0
https://kubernetes.io/docs/tutorials/
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
相关服务请访问:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019