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

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

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

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

为了满足此需求,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的最佳实践,例如为外部数据库创建服务端点,以及将统一资源标识符与端口映射一起用于托管数据库服务。

 

图片

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

某些最受欢迎的CSI驱动程序选项包括:

  • Amazon EKS EBS CSI驱动程序
  • Amazon EKS EFS CSI驱动程序
  • Azure磁盘CSI驱动程序
  • Azure文件AKS      CSI驱动程序
  • GCP GKE永久磁盘CSI驱动程序
  • GCP GKE文件存储连接
  • GKE的GCP Cloud SQL代理

同样,Kubernetes Pod可以使用NFS CSI驱动程序连接到私有NAS。多家企业存储提供商提供了针对Kubernetes设计的CSI和存储软件,例如Dell EMC CSI插件,NetApp Trident和Pure Storage Portworx。

*原文链接:https://searchstorage.techtarget.com/tip/Set-up-persistent-storage-for-containers-in-the-cloud

责任编辑:武晓燕 来源: 新钛云服
相关推荐

2013-07-09 10:18:58

VDI虚拟化

2021-05-25 10:20:31

Python持久性编程语言

2009-09-15 16:37:06

Google App 持久性

2019-09-06 09:50:52

云存储硬盘云服务

2009-09-27 09:55:38

Hibernate持久

2023-12-08 08:26:05

数据存储持久性

2009-09-23 15:25:08

Hibernate 3

2014-06-05 14:41:05

亚马逊AWS

2021-06-02 08:00:00

MOSH开源工具

2019-11-26 16:18:39

云计算Docker软件

2021-01-22 10:40:08

Linux文件内存

2017-05-08 08:32:51

2021-12-29 14:04:14

恶意软件黑客网络攻击

2017-09-21 08:16:33

数据存储环境

2017-11-21 14:32:05

容器持久存储

2022-08-22 07:58:14

容器云存储开发

2019-10-10 09:55:52

数据库安全数据库网络安全

2021-08-06 09:43:18

云计算容器云原生

2017-06-13 16:03:35

混合云容器编排引擎

2018-04-27 14:08:40

云容器DevOps
点赞
收藏

51CTO技术栈公众号