专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
Java知音  ·  SpringBoot ... ·  昨天  
51好读  ›  专栏  ›  分布式实验室

Kubernetes 1.6:大规模的多用户、多负载支持

分布式实验室  · 公众号  · 后端  · 2017-03-30 07:43

正文

请到「今天看啥」查看全文


有一个相关的特性叫做“污点和忍耐(taints and tolerations)”,使得可以精简地表达将Pod从特定节点排除的规则。这个也处于Beta阶段的特性,能让你很方便地将一组节点供某些用户群专用,或者通过将不需要某些特殊硬件的Pod排除来保持某些拥有特殊硬件的节点只供有特殊硬件需求的Pod使用。

有时候,你会有想一并调度某些服务,或者在一个服务中一并调度某些Pod,使它们在拓扑上相邻,从而达到如优化南北间或者东西间通讯的目的。或者你想分散一个服务的Pod来达到容忍失效的目的,或者让有冲突的Pod分开,又或者保证某些节点只供某单个租户使用。Pod的亲和力和反亲和力,目前提升到了Beta阶段,使得你可以应对上述场景,你可以在任意的拓扑(节点、域等)中设置分散或聚拢Pod的硬性或者软性的需求。

最后,为了达到极致的调度灵活性,你可以让自定义的调度器和默认的Kubernetes调度器一起运行,或者替换它。每一个调度器负责一组不同的Pod。在这个发布版本中,多调度器功能处于Beta版本。

动态存储配备 :需要部署有状态应用的用户将会受益于这次发布的Kubernetes中全面的存储自动化能力。

从早期开始,Kubernetes已经能根据Pod的描述要求自动地连接和断开存储、格式化磁盘或挂载和卸载卷,而且当Pod在节点之间移动的时候也能无缝地进行这些操作。另外,PersistentVolumeClaim(PVC)和PersistentVolume(PV)对象将存储的请求和特定存储的实现解耦了开来,从而让Pod的描述规范在各种云和本地部署环境中具备了可移植性。在这次发布中,StorageClass和动态卷配备已经达到了稳定的状态,可以按需创建和删除存储,消除了预先配备的需求,并以此完善了自动化的故事。

它的设计能允许集群管理者定义并且暴露集群中多种存储,每一种选项都支持各自自定义的参数。当终端用户在多个存储选项中进行选择的时候,无需再操心存储配备过程中的复杂度和细微差异。

在Kubernetes 1.6中,包含一组默认的功能,能完全将存储配备生命周期自动化,从而让你腾出空来关心你的应用。特别值得一提的是,Kubernetes现在会默认为AWS、Azure、GCP、OpenStack和VMWare vSphere预安装系统定义的StorageClass对象。这让使用这些提供源的用户无需手动设置StorageClass对象就能受益于动态存储配备功能。这是PVC对象在这些云上默认的行为的一个改变。注意默认的行为是动态配备的卷使用“删除”回收策略。这意味着一旦PVC被删除,动态配备的卷也会被自动删除,从而让用户无须执行额外的“清理”步骤。

另外,我们扩展了存储的支持,包括:

  • ScaleIO Kubernetes卷插件能让Pod无缝地访问并使用存储在ScaleIO卷上的数据。

  • Portworx Kubernetes卷插件添加了把Portworx作为Kubernetes集群存储提供源的能力。Portworx能把你的服务器容量进行蓄积(pool),将你的服务器或者云实例变成一个聚合的高可用的计算和存储节点。

  • 使用COS节点镜像来支持NFSv3、NFSv4和GlusterFS。

  • 支持用户编写的/运行的动态PV配备者。这里(http://github.com/kubernetes-incubator/external-storage)有一个Golang库和相关例子。

  • 持久性卷的中挂载选项的支持,处于Beta阶段。

容器运行时接口,etcd v3和Daemon set(守护进程集合)的更新:尽管用户可能不会直接和容器运行时或者API服务器的数据存储进行交互,它们却是Kubernetes中面向用户的功能中的基础组件。因为这个原因,社区在增加这些和其他系统组件的功能方面投入做了努力:







请到「今天看啥」查看全文