云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

数据库_数据库null_便宜的

小七 141 0

HashiCorp Nomad容器存储接口(CSI)Beta版

nomad0.11提供了一种新的方法来管理外部存储卷,以支持容器存储接口(CSI)的有状态工作负载。我们将在这篇博客文章中概述这一新功能。你可以在这里注册观看现场演示。在0.11之前,如果您希望运行Nomad中的数据库之类的有状态工作负载,那么您有几个不同的选择。如果没有太多数据,可以使用临时磁盘块来管理作业的数据。也可以使用Docker卷或host_volume功能将卷从主机装载到容器中。但是Docker卷或主机卷不能在主机之间迁移,需要您编写自己的编排来配置这些卷。我们希望为运营商改善这种体验,但每个存储提供商都有自己的API和工作流。我们采用了容器存储接口(CSI),而不是直接将它们烘焙到Nomad中。CSI是一种行业标准,它使存储供应商能够一次性开发一个插件,并让它在多个容器协调系统中工作。CSI插件是作为Nomad作业运行的第三方插件,可以挂载云提供商创建的卷。Nomad在调度过程中知道CSI管理的卷,使其能够根据特定客户机上卷的可用性来安排您的工作负载。每个存储提供商都会构建自己的CSI插件,我们可以在Nomad中支持所有这些插件。您可以启动从AWS Elastic Block storage(EBS)或Elastic File System(EFS)卷、GCP永久磁盘、Digital Ocean droplet存储卷、Ceph、vSphere或与供应商无关的第三方提供商(如Portworx)中声明存储卷的作业。这意味着存储提供商为支持Kubernetes而编写的插件也支持Nomad(请在此处查看完整列表)!»CSI插件CSI插件作为Nomad作业运行,带有一个新的CSI_plugin块来告诉Nomad该作业正在实现CSI接口。有两种类型的插件。控制器插件与存储提供商的api通信。因此,例如,当您运行一个需要AWS EBS卷的作业时,Nomad会告诉控制器插件它需要在客户机节点上安装一个卷。控制器将调用AWS以将EBS卷附加到正确的EC2实例。节点插件在每个客户机节点上执行工作,例如创建绑定挂载。不是每个插件提供程序都有或需要一个特定于提供程序实现的控制器。但通常情况下,您将在每个Nomad客户机上运行一个节点插件,并在其中装载卷并运行控制器插件的一个或两个实例。注意,与Nomad任务驱动程序和Nomad设备驱动程序不同,CSI插件是动态管理的,您不需要事先安装插件!我们很高兴看到这个模型将我们带向未来其他动态插件的可能性。在下面的示例中,我们告诉Nomad该作业公开了一个我们想称之为aws-ebs0的插件,它是一个控制器插件,并希望该插件在容器内的/csi处公开其Unix域套接字。csi_插件{id="aws-ebs0"type="控制器"mount_dir="/csi"}我们将为这个插件运行两个作业—控制器的服务作业和节点的系统作业,这样每个Nomad客户机上都有一个作业。如果我们想运行awsefs插件,我们会查看它的文档,发现它只需要一个节点插件。»卷运行CSI插件后,可以使用新的nomad volume register命令从存储提供商注册卷。我们用盐酸定义体积。在下面的示例中,我们将一个卷用作MySQL数据库存储,映射到我们在别处创建的EBS卷的外部ID(可能通过Terraform)。type="犯罪现场调查"id="mysql0"name="mysql0"外部_id="vol-0b756b75620d63af5"access_mode="单节点写入程序"attachment_mode="文件系统"plugin_id="aws-ebs0"每个插件都有自己的访问模式和附件模式的功能。有些插件可以支持一个writer拥有多个读卡器,并且只允许一个容器使用卷。一些插件支持"设备模式",当应用程序可以处理原始设备而不是预格式化的文件系统时。接下来我们注册卷:$nomad卷寄存器体积.hcl$nomad卷状态mysql0ID=mysql0名称=mysql0外部ID=vol-0b756b75620d63af5插件ID=aws-ebs0提供程序=美国证券交易委员会.com网站版本=v0.6.0-脏可调度=真控制器正常=1期望的控制器=1节点正常=2预期节点数=2访问模式=单节点写入程序附件模式=文件系统命名空间=默认值现在Nomad jobs可以使用这个卷和他们用来声明主机卷的卷和volume_装载块。除了现在启动作业时,Nomad将动态地将外部卷附加到主机。作业"mysql服务器"{数据中心=dc1"]type="服务"组"mysql server"{计数=1"mysql"卷{type="犯罪现场调查"只读=错误source="mysql0"}任务"mysql服务器"{driver="docker"卷安装{volume="mysql0"目的地="/srv"只读=错误}配置{图像="mysql:最新"args=--datadir","/srv/mysql"]}}}}»入门我们正在为nomad0.11发布Nomad的容器存储接口集成,以获得社区的反馈。我们已经开始了对AWS EBS和AWS EFS的良好测试支持,我们想听听您对其他CSI插件感兴趣的是什么。同时,请随时尝试,并在问题跟踪系统中给我们反馈。若要查看此功能的实际效果,请在此处注册即将到来的live demo会话。