Kubernetes 1.16加入端点切片功能大幅增加可扩展性

Kubernetes现在发布了1.16版本,这是今年的第3个版本,被用来作为Kubernetes扩展机制的CRD(Custom Resource Definition)现在成为正式功能,而Kubernetes API也有一些修改,也为Windows增加了新的增强功能,另外,这个版本还加入了一个新的Alpha功能端点切片(Endpoint Slices)。

自Kubernetes 1.7加入CRD后,便一直以Beta测试版存在,但现在最新Kubernetes 1.16达到正式可用的阶段,官方提到,升级到正式版,部分之前选用的防护功能会成为必要或是默认,像是结架构构(Structural Schema)、删减未知字段、验证以及保护*.k8s.io群组等,目的是要确保API的稳定性,更不容易因为意外而故障。

未来CRD API会继续更新,官方还会增加任意子资源、API群组搬迁以及更有效率的串行化协议,不过,官方表示,之后的更改就会是选用的,并且作为与正式版API内容的互补。

官方为Kubernetes 1.16加入了端点切片功能,而这可以为Kubernetes服务带来更大的伸缩弹性,目前的端点资源,单个人信息源包括所有和服务相对应Pod的网络端点,但随着服务越来越大,可能需要使用上万个Pod,这使得端点资源变得非常庞大。

在大规模集群上的服务,即使单纯删除或是增加一个端点都需要付出庞大的成本,例如当集群中有5,000个节点和1 MB端点对象,则每一次更新就会造成5 GB的流量。通过端点切片,服务的网络端点可被切分为多个人信息源,进而减少大规模更新产生的数据量,默认情况下,每个端点切片都被限制最多包含100个端点,这样的机制会使更新单个节点变得更有效率,因为每个端点都仅是整个网络端点的一小部分。

Kubernetes 1.16增加了不少针对Windows的测试功能,现在GMSA(Active Directory Group Managed Service Account)的支持已经进入Beta阶段,GMSA是一个Active Directory账号的特定类型,让Windows容器具有身份,在网络或是与其他资源沟通时被辨认出来。Windows容器也可通过身份验证访问外部的资源,另外,GMSA也提供自动密码管理、简化SPN(Service Principal Name)管理,以及跨多个服务器将管理权限委派给多个管理员等功能。

这个版本还支持容器存储接口(Container Storage Interface,CSI),CSI的扩展组件支持外部供应商,使得在Kubernetes集群中的Windows节点,能够为Windows工作负载提供永久存储,官方表示,这将大幅扩展Windows工作负载的存储选项。该功能通过主机操作系统代理实例,该代理可以代表容器在Windows节点上执行特权操作,不过目前这个功能还是Alpha测试阶段。