carloscastilla——Fotolia

为云中的容器设置持久存储

所有主要的云供应商都提供容器作为服务。IT管理员可以通过各种方式为这些灵活的环境启用持久存储。

容器的持久存储是企业用户的常见需求,包括那些在云中运行工作负载的用户。

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

为了满足这一需求,管理平台如码头工人Kubernetes,以及AWS、Azure和谷歌提供的云容器管理服务,提供连接到存储卷、网络文件系统和数据库的机制。

由于在云中实现容器持久存储的方法有很多种,管理员必须选择最适合其独特存储需求的选项。

CaaS和Kubernetes的背景

容器即服务由于其方便性、可移植性、安全性、可伸缩性、性能和灵活性,CaaS产品已经成为越来越受欢迎的自管理Kubernetes安装的替代方案。云托管容器的多功能性(可以使用云提供商的全套本地服务)对于那些更喜欢在线服务而不是私有容器基础设施的组织来说是一个重要的激励因素。

Kubernetes已经成为首选集群管理平台.它可以通过Amazon Elastic Kubernetes Service (EKS)、Azure Kubernetes服务(AKS)和谷歌Kubernetes引擎(GKE)。尽管如此,云用户仍然可以选择使用Amazon Elastic compute cloud这样的专用计算实例或按需容器实例来提供集群节点AWS Fargate、Azure容器实例或GKE节点自动配置。

管理员经常使用带有Kubernetes称为StatefulSets特性的持久卷,这是一个管理一组pod的部署和扩展的API。

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

Kubernetes存储选项

库伯内特的存储使用由于该平台的灵活性和对众多存储平台的支持,可能会令人困惑。实际上,Kubernetes存储在概念上很简单,归结起来就是连接一个圆荚体——一个或多个容器共享一个名称空间、卷和其他设置——到外部卷。卷可以是:

  • 逻辑磁盘和挂载点;
  • 块存储服务,如Amazon Elastic block Store (EBS)或Azure Disk;和
  • 网络文件共享,从运行NFS、Ceph (CephFS)等存储阵列,或云文件服务,如Amazon Elastic file System (EFS)或谷歌cloud Filestore。

根据Kubernetes文档,卷只是一个目录,其中可能有一些数据,可以被pod中的容器访问。管理员使用的特定卷类型将决定该目录的形式、支持它的媒介及其内容。

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

管理员经常使用带有Kubernetes特性的StatefulSets的持久卷管理一组pod的部署和扩展的API。它提供惟一的持久标识、永久主机名和有序的自动滚动代码更新。根据Kubernetes文档, StatefulSet中的单个豆荚可能会失败,但持久豆荚标识符有助于将现有卷与替换那些失败的豆荚的新豆荚匹配。

在容器中运行的应用程序也可以使用大多数语言可用的Open Database Connectivity驱动程序通过IP连接到外部数据库。一些云服务,如Azure提供指令当管理员连接AKS和Azure database for PostgreSQL时,最大化网络性能和最小化数据库开销。

其他云数据库服务使用a双轮马车的代理以支持连接方法。例如,谷歌云SQL代理是将GKE应用程序链接到云SQL实例的一种安全可靠的方法。谷歌提供了最佳实践将外部服务映射到Kubernetes,例如为外部数据库创建服务端点,以及为托管数据库服务使用端口映射的统一资源标识符。

Kubernetes存储架构示例图

由于CaaS产品使用现有的存储接口,并且有用于云块和文件服务的CSI驱动程序,pod部署可以在私有、自我管理的存储卷和共享或云资源之间进行选择。

一些最流行的CSI驱动程序选项包括:

  • Amazon EKS EBS CSI驱动程序
  • Amazon EKS EFS CSI驱动程序
  • Azure Disk CSI驱动程序
  • Azure Files AKS CSI驱动程序
  • GCP GKE Persistent Disk CSI驱动
  • 文件存储连接
  • GCP Cloud SQL Proxy for GKE

同样,Kubernetes豆荚可以使用NFS CSI驱动程序连接到私有NAS。几个企业存储提供商提供为Kubernetes设计的CSI和存储软件,如Dell EMC CSI Plugins, NetApp Trident和Pure storage Portworx。

深入了解云存储管理和标准

搜索灾难复苏
搜索数据备份
搜索聚合基础设施
关闭
Baidu