范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

深挖Kubernetes存储为何如此难及其解决方案

  译者:韦峻峰
  转自:RancherLabs
  以Kubernetes为代表的容器编排工具在应用开发部署领域起正发挥着颠覆性的变革作用。随着微服务架构的发展,从开发人员的角度来看,应用逻辑架构与基础设施架构之间开始解耦,这意味着开发者能够将精力更多集中在软件构建以及价值交付身上。
  Kubernetes的作用,在于对其管理的物理服务器进行抽象。在Kubernetes的帮助下,我们可以描述并使用所需要的内存与计算容量的总和,而不再关注底层基础设施架构。
  当管理Docker镜像的时候,Kubernetes也让实际应用变的十分便捷灵活。在利用Kubernetes进行容器架构的应用部署时,管理员们将在无需修改底层代码的前提下将其部署在任何位置——包括公有云、混合云乃至私有云。
  虽然Kubernetes在扩展性、便携性与管理性等方面的表现都相当给力,但截至目前,它仍然不支持存储状态。与之对应的是,如今的大多数应用都是有状态的——换言之,要求在一定程度上配合外部存储资源。
  Kubernetes架构本身非常灵活的,能够根据开发者的需求、规范以及实际负载情况,对容器进行随意创建与撤销。此外,Pod和容器还具有自我修复与复制能力。因此从本质上讲,它们的生命周期普遍非常短暂。
  但是,现有持久存储解决方法无法支持动态的应用场景,而持久化存储也无法满足动态创建与撤销的需求。
  当我们需要将有状态应用部署到其它基础架构平台,或者另一家内部或混合云供应商的环境中时,可移植性低下无疑将成为我们面临的巨大挑战。更具体地讲,持久化存储解决方案往往会锁定于特定云服务供应商,而无法灵活完成转移。
  另外,云原生应用中的存储机制也相当复杂、难于理解。Kubernetes中的不少存储术语极易混淆,其中包含着复杂的含义与微妙的变化。再有,在原生Kubernetes、开源框架以及托管与付费服务之间还存在着诸多选项,这极大增加了开发人员在做出决定之前的考量与试验成本。
  以下是CNCF列出的云原生存储可选方案:
  我们首先从最简单的场景出发,即在Kubernetes当中部署一套数据库。具体流程包括:选择一套符合需求的数据库,让它在本地磁盘上运行,然后将其作为新的工作负载部署到集群当中。但是,由于数据库中存在的一些固有属性,这种方式往往无法带来符合预期的效果。
  容器本身是基于无状态原则进行构建的,凭借这一天然属性,我们才能如此轻松地启动或撤销容器环境。由于不存在需要保存及迁移的数据,集群也就不需要同磁盘读写这类密集型操作绑定在一起了。
  但对于数据库,其状态必须随时保存。如果以容器方式部署在集群当中的数据库不需要进行迁移,或者不需要频繁开关,那么其基本属性就相当于一种物理存储设备。在理想情况下,使用数据的容器应该与该数据库处于同一Pod当中。
  当然,这并不是说将数据库部署在容器中的作法不可取。在某些应用场景下,这样的设计完全能够满足需求。举例来说,在测试环境或者处理非生产级数据时,由于总体数据量很小,将数据库纳入集群完全没有问题。但在实际生产中,开发人员往往需要仰仗于外部存储机制。
  Kubernetes到底是如何与存储资源彼此通信的?其利用的是控制层接口。这些接口负责将Kubernetes与外部存储相对接。接入Kubernetes的外部存储解决方案被称为"卷插件(Volume Plugins)"。正是有了卷插件的存在,存储资源才得以抽象化并实现可移植性。
  以前,卷插件一般由核心Kubernetes代码库进行构建、链接、编译以及装载。这样就极大的限制了开发人员的发挥空间,同时也带来了额外的维护开销。因此,项目维护人员们决定在Kubernete的代码库上增加一些新的存储功能。
  随着CSI以及Flexvolume的引入,卷插件如今可以在集群中直接部署,而完全无需更改代码库。
  原生Kubernetes与存储
  原生Kubernetes如何处理存储资源?它提供一系列管理存储选项:除了临时选项之外,还包括持持久卷(Persistent Volumes),持久卷声明(Persistent Volume Claims),存储类(Storage Classes)乃至StatefulSets等持久存储形式。似乎有点乱,下面我们就对其进行一一解释。
  持久卷是由管理员负责配置的存储单元,它们独立于任何单一Pod之外,因此不受Pod生命周期的影响。
  另一方面,持久卷声明是对存储资源——也就是持久卷——的需求。有了持久卷声明,我们就可以将存储与特定的节点绑定在一起使用。
  存储资源有两种使用方式:静态存储与动态存储。
  使用静态存储时,管理员根据预估对持久卷进行预配置,这些持久卷将被手动绑定到具有明确持久卷声明的特定Pod上。
  实际上,静态定义的持久卷并不能适应Kubernetes的可移植特性,因为存储资源具有对环境的依赖性——例如AWS EBS或者GCE Persistent Disk。另外,手动绑定还需要根据不同供应商的存储方案修改YAML文件。
  在资源分配方面,静态配置实际上也违背了Kubernetes的设计原则。后者的CPU与内存并非事先被分配好绑定在Pod或者容器上,而是以被动态形式进行分配。
  动态分配则依靠存储类来实现。集群管理员不需要预先手动创建持久卷,而是创建类似于模板的文件。当开发人员制作持久卷声明时,只需要根据实际需求创建一套模板并附加至Pod即可。
  通过简单的说明,相信大家已经了解了原生Kubernetes对外部存储资源的使用方式。当然,这里仅仅做出概括,实际使用场景中还有更多其它因素需要考量。
  CSI——容器存储接口
  下面来看容器存储接口(简称CSI)。CSI是由CNCF存储工作组创建的统一标准,旨在定义一个标准的容器存储接口,从而使存储驱动程序能够在任意容器架构下正常起效。
  CSI规范目前已经在Kubernetes中得到普及,大量驱动插件被预先部署在Kubernetes集群内供开发人员使用。如此一来,我们就可以利用Kubernetes上的CSI卷来访问与CSI兼容的开放存储卷。
  CSI的引入,意味着存储资源能够作为Kubernetes集群上的另一种工作负载实现容器化以及部署。
  相关开源项目
  目前,围绕云原生技术涌现出大量工具与项目。但作为生产场景中的一大突出问题,我们往往很难在云原生架构中选择最合适的开源项目。换言之,解决方案选项太多,反而令存储需求变得更难解决。
  我们再看一次CNCF列出的云原生存储的可选方案:
  下面我会分享一下当下流行的存储方案Ceph与Rook,还有Rancher开源的容器化分布式存储Longhorn。
  Ceph
  Ceph是一种动态托管、横向扩展的分布式存储集群。Ceph面向存储资源提供一种逻辑抽象机制,其设计理念包括无单点故障、自管理以及软件定义等特性。Ceph可以面向同一套存储集群分别提供块存储、对象存储以及文件存储的对应接口。
  Ceph架构相当复杂的,其中使用到大量的底层技术,例如RADOS、librados、RADOSGW、RDB、CRUSH算法,外加monitor、OSD以及MDS等功能性组件。这里我们先不谈它的底层架构,关键在于Ceph属于一种分布式存储集群,这使得扩展更便利、能够在不牺牲性能的前提下消除单点故障,且提供涵盖对象存储、块存储以及文件存储的统一存储体系。
  很明显,Ceph与云原生环境彼此兼容的,我们也可以利用多种方法部署一套Ceph集群,譬如使用Ansible。我们可以部署一套Ceph集群,并使用CSI与持久卷声明来提供指向Kubernetes集群的接口。
  Ceph架构图
  Rook
  另一个有趣且颇具人气的项目是Rook,这是一项旨在将Kubernetes与Ceph融合起来的技术方案。从本质上讲,它将计算节点和存储节点放进了同一个集群当中。
  Rook是一种云原生编排器,并对Kubernetes做出扩展。Rook允许用户将Ceph放置在容器内,同时提供卷管理逻辑以立足Kubernetes之上实现Ceph的可靠运行。Rook还使本应由集群管理员操作的多种任务完成了自动化实现,其中包括部署、引导、配置、扩展以及负载均衡等等。
  Rook可以像Kubernetes一样使用yaml文件来部署Ceph集群。这种文件以高级声明的形式存在,负责为集群管理员提供所需要的全部内容。
  Rook在集群启动完成后,即开始进行实时监控。Rook将以操作端或者控制端的姿态确保yaml文件中所声明的状态始终正常。Rook运行在一套协调的逻辑循环中,该循环将观察运行状态并根据检测到的异常采取响应。
  Rook自身不具备持久状态,也不需要单独管理。这,才是真正与Kubernetes设计原则相符的存储资源管理方案。
  Rook凭借着将Ceph与Kubernetes协同起来的强大能力而颇受欢迎,在GitHub上获得近4000颗星,1600多万次的下载,并吸引到100多名贡献者,现已进入CNCF孵化阶段。
  Longhorn
  Longhorn项目是Rancher Labs推出的开源的基于云和容器部署的分布式块存储新方式。Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统。
  如今,基于云和容器的部署规模日益扩大,分布式块存储系统也正变得越来越复杂,单个存储控制器上的volume数量在不断增加。2000年代初,存储控制器上的volume数量只有几十个,但现代云环境却需要数万到数百万的分布式块存储卷。存储控制器变成了高度复杂的分布式系统。
  Longhorn充分利用了近年来关于如何编排大量的容器和虚拟机的核心技术。例如,Longhorn并没有构建一个可以扩展到100,000个volume的高度复杂的控制器,而是出于让存储控制器简单轻便的考虑,创建了100,000个单独的控制器。然后,我们可以利用像Kubernetes这样的最先进的编排系统来调度这些独立的控制器,共享一组磁盘中的资源,协同工作,形成一个弹性的分布式块存储系统。
  Longhorn基于微服务的设计还有很多其他优势。因为每个volume都有自己的控制器,在升级每个volume的控制器和replica容器时,是不会导致IO操作明显的中断的。Longhorn可以创建一个长期运行的工作来编排所有live volume的升级,同时确保不会中断系统正在进行的操作。为确保升级不会导致意外的问题,Longhorn可以选择升级一小部分volume,并在升级过程中出现问题时回滚到旧版本。这些做法在现代微服务应用中已得到广泛应用,但在存储系统中并不常见。希望Longhorn可以助力于微服务在存储领域的更多应用。
  结 语
  对于实际应用层面出现的任何问题,最重要的自然是判断需求、设计系统或者选择适当的工具。同样的道理也适用于云原生环境。虽然具体问题非常复杂,但也必然会出现大量工具方案尝试解决。随着云原生世界的持续发展,我们可以肯定,新的解决方案将不断涌现。未来,一切都会更加美好!
  本文转自CSDN云计算

又一汽车业乱象卷土重来?涉及金额上千亿元,2份额却占60市场最近,可能很多人都会有同样的感觉某些汽车品牌的4S店越来越强势了。就在最近,安徽发生了一件令人瞠目结舌的事情。一位合肥的王女士在合肥恒信奥龙4S店订购了一辆奥迪越野车,结果提车的时从马拉松,烽火台到5G跨越千年的基站进化史话说蜉蝣君在思考基站进化史这个主题时,忽然想到,以基站为标志的移动通信系统,就正如地球上的生命的发展史一样,大多数的岁月寂寂无声,到最后突然加速。地球的历史已有46亿年,如果把这段5G的手机信号,真是让人操碎了心5G时代,快仿佛成了最嘹亮的主打歌。可是,5G在频谱效率上跟4G相比并没有本质的不同,因此只能靠增大信号带宽来支撑。于是5G最先建设的频谱就落在了能提供连续几百兆带宽的3。5GHz手机怎么知道5G基站的存在?5G基站建好了,5G手机也就位了,那么,手机该怎么知道5G基站的存在呢?这就需要手机按照自己支持的频段来进行逐一搜索信号了,一旦发现可用的5G信号,就具备了使用5G网络的条件,手机5G基站为什么需要AAU?导语随着5G的到来,5G基站将像像水和电一样融入我们的生活,无时无刻不在为我们服务。但是,这个幕后英雄,却不为多数人所理解。本文将带你了解5G基站信号的发射装置AAU。一5G为什么一文看懂RRU基站辐射的万恶之源导语基站,其实早已像水和电一样融入了我们的生活,无时无刻不在为我们服务。但是,这个幕后英雄,却不为多数人所理解。本文将带你了解基站信号的发射装置RRU。一一体化基站的落幕RRU,也5G基站类型,跟4G的区别有点大在4G时代,说到基站,用词就是基站而已,对于发射信号的装置,也是简单地称作RRU(RemoteRadioUnit,远端射频单元),或者RRH(RemoteRadioHead,射频拉5G大规模天线阵列是怎么样支持超高速率的?MassiveMIMO(大规模MIMO,又简称作MMIMO或者MM),作为5G的核心技术,是承载在AAU之上的,而AAU内部的天线阵列,则是实现MassiveMIMO的最重要的载体曾是重庆的产业支柱,今国内销量仅占5,在东南亚还是低劣代名词相信很多40岁以上的人都有买摩托车的经历,80后和90后都不少人有坐父辈摩托车上的经历,如今大家都购置汽车,再加上很多城市禁摩。摩托车逐渐离我们生活越来越远,但是摩托车拉风自由操控13亿人忽视的小国,跟欧盟唱对台戏20年,却被华为设为欧洲总部对于广大的中国人来说,已经习惯了听到西欧国家的名字,比如法国荷兰英国比利时,这4个国家可谓是耳熟能详,这4个国家各有各自的优势工业,在国际上具有较高的竞争力。但是有一个西欧国家,却王宝强曾代言的国产机,开店6000家却迅速倒闭,只因参考煤价卖机在过去的几年里,华为多次遭遇美国制裁,成为了国人关注的焦点,在这种情况下,有不少网友表明立场,坚决支持国产手机,这让华为表示感动。实际上如今国内的市场,除了苹果手机还有较大的市场份
智工作享生活戴尔Latitude新品破解叠加态2021年7月28日,Hello叠加态智工作享生活戴尔Latitude2021新品沙龙在优客工场举办。优客工场与戴尔Latitude宣布双方战略合作,共建优客工场xLatitude雅迪发布城市高端品牌VFLY,创造自由出行新体验7月8日,在上海保时捷体验中心,电动车行业领导者雅迪正式发布旗下全新城市高端品牌VFLY。依托涵盖设计动力能源智能等极致科技生态,雅迪VFLY将向城市新一代年轻人提供极致品质下多维实体店商家如何玩转小程序砍价活动?实现快速引流混迹在微信群的帮我砍一刀随处可见,砍价活动已经成了商家引流拓客的一大绝招,那么实体店商家又该如何策划砍价活动,为自己的店铺快速引流拓客呢?一,得有店帮助实体店商家策划砍价活动实体店得有店小程序上新电子面单,帮助商家全方位做好经营功能介绍电子面单功能可以支持商家快递发货时选择在线下单,在线获取和打印电子面单。免去手写面单信息以及避免填写运单号填错,系统会自动填写对应发货商品的运单信息。功能路径得有店商户后台有哪些公司制作微信小程序,作为商家该如何选择?小程序自出世到现在以来,已经广泛被大众所知,很多小程序制作公司也如雨后春笋般冒出来,那么商家在面对众多小程序制作公司,该如何选择?一,如何选择靠谱的小程序制作公司商家可以从该小程序聊聊MagSafeBatteryPack的真实体验每次提到MagSafeBatteryPack,最常被人搬出来论证这玩意不能用的观点有749,智商税只有1500mAh不到(实际上是3000mAh)充手机只有5W功率,实际搭配手机使微信小程序开发公司哪个最好,商家如何选择?对于很多中小微企业尤其是传统企业而言,小程序的出现可以说是又一次拥抱移动互联网,实现企业转型的大好机遇。很多商家都在搭建自己的小程序,那么哪家公司开发的小程序是最好的呢,商家该如何眼镜商家如何引客上门,这三位商家有妙招,巧用小程序快速引流走过大街小巷,你会发现很多人都喜欢带着各式各样的眼镜。俨然,眼镜已成为时下年轻人追求潮流时尚的一个标志,这无疑使眼镜行业更加繁荣。现在大大小小知名不知名的眼镜门店数不胜数,再一味的小程序如何制作?免费制作平台有哪些?现在各行各业都在制作微信小程序,抢占微信的流量红利,对于一些预算不足的企业和商家,该如何制作微信小程序?1,商家如何制作免费的微信小程序建议商家尽量不要选择免费的小程序制作平台,一卖凉皮的小本生意也能做到风声水起,他的营销秘诀是什么?在炎热的夏天里,凉皮对与一些不想吃饭的人,莫过于最大的慰藉。一份凉皮的生意能做多大,今天要讲的餐饮老板不简单,硬是用凉皮创造了一个销售奇迹。案例说明张老板以前在厂里上班,经常下班后餐饮老板出奇招,巧用小程序砍价,20分钟获近7万人次曝光相信前几天时间得有店上线的砍价工具,众位商家一定在暗戳戳的研究,今天我就来分享一个成功的小程序砍价案例,所有商品在20分钟内售罄,获得6。8万的曝光量,帮助砍价人数1600,获得新