加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 云计算 > 正文

建立持久性存储于云中的容器

发布时间:2023-02-28 10:55:32 所属栏目:云计算 来源:
导读:对于企业用户而言,存储容器能持续使用是非常重要的,包括那些运行在云端的工作负载也是如此。

容器实例是短暂的;一旦单个容器被破坏,它就不会留下任何东西。结果,需要持久性的工作负载(无论是通过保存状态和工
对于企业用户而言,存储容器能持续使用是非常重要的,包括那些运行在云端的工作负载也是如此。

容器实例是短暂的;一旦单个容器被破坏,它就不会留下任何东西。结果,需要持久性的工作负载(无论是通过保存状态和工作产品还是访问共享数据库)都必须与外部系统进行交互。

为了满足此需求,Docker和Kubernetes等管理平台以及来自AWS,Azure和Google的云容器管理服务提供了连接到存储卷,网络文件系统和数据库的机制。

由于有很多方法可以为云中的容器实现永久性存储,因此管理员必须选择最能满足其独特存储需求的选项。

CaaS和Kubernetes的背景

容器即服务(CaaS)产品因其便捷性,可移植性,安全性,可伸缩性,性能和灵活性而成为自托管Kubernetes安装的越来越受欢迎的替代方案。云托管容器的多功能性可以使用云服务提供商的本机服务,这对于那些偏爱在线服务而不是私有容器基础架构的组织而言,是一个巨大的诱因。

Kubernetes已成为首选的集群管理平台。它可以通过诸如Amazon Elastic Kubernetes服务(EKS),Azure Kubernetes服务(AKS)和Google Kubernetes Engine(GKE)之类的产品获得。但是,用户仍然可以使用几个选项来使用诸如Amazon Elastic Compute Cloud的专用计算实例或通过AWS Fargate,Azure容器实例或GKE节点自动预配置的服务按需容器实例来配置群集节点。

无论管理员如何部署群集节点,Kubernetes控制平面都提供了几种连接到永久卷和文件共享的方法,包括由云存储服务创建的卷和文件共享。

Kubernetes存储选项

Kubernetes中的存储使用可能会造成混乱,因为该平台具有很高的灵活性并支持众多存储平台。实际上,Kubernetes存储在概念上很简单,归结为将pod(一个或多个共享名称空间,卷和其他设置的容器)连接到外部卷。卷可以是:

逻辑磁盘和挂载点;

阻止存储服务,例如Amazon Elastic Block Store(EBS)或Azure磁盘;

网络文件共享,来自运行NFS,Ceph(CephFS)等的存储阵列,或来自Amazon Elastic File System(EFS)或Google Cloud Filestore等云文件服务。

根据Kubernetes文档,卷只是一个目录,其中可能包含一些数据,吊舱中的容器可以访问该目录。管理员使用的特定名称的类型将帮助确定支持该目录的名称,甚至包括支持该特定目录的介质及其包含的内容。

支持多种存储类型的灵活性源于容器存储接口(CSI),该标准是将块和文件存储公开给容器协调器(包括Cloud Foundry,Kubernetes,Mesos和Nomad)的标准。Pod使用.spec.volumes文件中的配置来装载卷,但是管理员不能嵌套卷。一个卷不能挂载或具有指向其他卷的符号链接。每个支持的卷类型都有一个不同的关键字,如Kubernetes文档中所指定;例如,用于EBS的awsElasticBlockStore,用于Azure文件的azureFile或用于SAN iSCSI卷的iscsi。

管理员经常使用持久卷带Kubernetes功能叫做StatefulSets,管理一套吊舱的部署和扩展的API。它提供了唯一的,持久的身份,永久的主机名以及有序的自动滚动代码更新。根据Kubernetes文档,StatefulSet中的各个Pod可能会失败,但是持久Pod标识符有助于将现有卷与替换发生故障的新Pod进行匹配。

容器中运行的应用程序还可以使用大多数语言提供的Open Database Connectivity驱动程序通过IP连接到外部数据库。当管理员将AKS与用于PostgreSQL的Azure数据库连接时,某些云服务(例如Azure)提供了说明,以最大化网络性能并最小化数据库开销。

其他云数据库服务使用Sidecar代理来支持连接方法。例如,Google Cloud SQL代理是一种安全可靠的方法,可以将GKE应用程序链接到Cloud SQL实例。Google提供了将外部服务映射到Kubernetes的最佳实践,例如为外部数据库创建服务端点,以及将统一资源标识符与端口映射一起用于托管数据库服务。通过这种方式,您可以在不影响现有应用程序的情况下,将kubernetes服务集成到企业级应用程序中。

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!