Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1234499
  • 博文数量: 1096
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 11060
  • 用 户 组: 普通用户
  • 注册时间: 2018-03-07 15:17
个人简介

linux工程师,RHCE

文章分类

全部博文(1096)

文章存档

2023年(84)

2022年(314)

2021年(251)

2020年(244)

2019年(176)

2018年(27)

我的朋友

分类: 系统运维

2022-10-27 09:28:25

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

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

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

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

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)提供了说明,以{BANNED}最佳大化网络性能并{BANNED}最佳小化数据库开销。

其他云数据库服务使用Sidecar代理来支持连接方法。例如,Google Cloud SQL代理是一种安全可靠的方法,可以将GKE应用程序链接到Cloud SQL实例。Google提供了将外部服务映射到Kubernetes的{BANNED}最佳佳实践,例如为外部数据库创建服务端点,以及将统一资源标识符与端口映射一起用于托管数据库服务。

 


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

某些{BANNED}最佳受欢迎的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。

*原文链接:
《linux就该这么学》不错的linux自学书籍

阅读(205) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~