Kubernetes团队刚刚发布了1.8版Kubernetes,新版在改进安全性的同时提供了更好的稳定性,并将Workloads API升级到了Beta版本。此外还对原本已经成熟的功能进行了更新,包括基于角色的访问控制(RBAC),为卷挂载选项提供支持,允许特权提升,以及对高级卷操作度量提供的支持。
在合规方面,RBAC和网络策略是两个非常强大的功能,有助于帮助客户满足管控和安全方面的需求。集群管理员可以根据Kubernetes API资源的作用范围,使用RBAC为用户和应用程序(服务帐户)定义不同级别的细化访问权限。网络策略可以在异构集群环境中针对不同Pod提供不同级别的隔离。
举例来说,如果只有一个应用程序服务器(源)连接到数据库服务器(目标),管理员可以定义两条策略,第一条应用于数据库Pod,只允许在特定端口接受来自应用程序Pod的入站流量;第二条应用于应用程序Pod,只允许将流量发送给数据库Pod的指定端口。这种策略可针对名称空间或CIDR的范围生效。默认情况下,同一个Kubernetes集群内的所有Pod(例如前端Pod、后端Pod、数据库Pod、缓存Pod等)可以毫无限制地相互随意通信。
此外新版本还包括一些重要的Beta版功能,例如可通过网络策略对来自Pod的出站流量进行筛选,可以为Kubelet和Workloads API配置自动进行的传输层安全(TLS)证书轮换。Kubernetes团队称,Workloads API“可以对现有工作负载向Kubernetes进行的迁移,以及以Kubernetes为原生目标的云原生应用程序开发提供所需的抽象和稳健的基础”。
Workloads API包含Daemon Sets(Pod管理)、Replica Sets(管理Pod的跨节点复制)、Deployments(管理Pod的更新和复制集)、Stateful Sets(对数据库等有状态应用程序提供Pod管理)。例如bootkube项目就使用了Workloads API。对于大数据工作负载,Workloads API还为Apache Stark提供了原生的Kubernetes支持。
Kubernetes社区对于1.8版本的发布表现的极为活跃,这是今年内的第三次发布,总共为Kubernetes增加了40个功能,这些功能(目前)来自29个特殊兴趣组(Special interest group,SIG)以及6个工作组(Working group,WG)。SIG是一种很多贡献者为了让项目更完善,围绕共同目标和具体的主题做贡献的群体,WG的成员则主要负责新概念的实现,以及协调于不同SIG的合作。
Kubernetes目前的开发重心主要围绕可以进一步改善稳定性的功能,并非围绕全新的功能。目前功能的生命周期主要分为三个阶段:Alpha、Beta和Stable。Alpha阶段主要面向处于初步阶段的功能,这些功能都是实验性的,并且可能在后续版本中取消。Beta阶段更进一步,会针对各种功能收集反馈并进一步完善。处于Stable阶段的功能通常已经不太可能继续改动,已经可以准备好用于生产环境。
1.8版约有40个新功能,其中4个处于Stable状态,16个为Beta状态,其余均为Alpha状态。预计这些功能将在1.9版进入Stable状态:Workloads API、与Prometheus更完善的集成、自定义资源定义(CRD)、在资源管理方面更丰富的节点级改进,以及常规的Bug修复。