Kubernetes技术与架构-存储 1

Kubernetes集群Pod中运行的容器实例绑定的资源包括计算、内存、网络以及存储,本文主要描述Kubernetes存储体系的使用方式,Kubernetes存储对象需要解决的问题主要包括在Pod重启过程中原始数据不会丢失、运行在Pod中多个容器实例可以共享地使用存储对象。

kubectl create configmap  

使用kubectl命令行工具创建一个configMap的存储对象

Kubernetes技术与架构-存储 1_第1张图片

如上所示,运行在Pod中的容器实例mount了一个configMap存储对象config-vol,其挂载在Pod中的路径是/etc/config

Kubernetes技术与架构-存储 1_第2张图片

如上所示,运行在Pod中的容器实例mount了一个emptyDir存储对象cache-volume,emptyDir存储对象是在Pod运行成功后创建的空目录存储对象,当Pod从服务器节点Node中被删除的时候,emptyDir存储对象才会被删除,存储在其中的数据也被删除

gcloud compute disks create --size=500GB  --zone=us-central1-a my-data-disk

创建一个GCE类型的存储对象,GCE是google cloud提供的云原生存储对象

Kubernetes技术与架构-存储 1_第3张图片

如上所示,在地区us-central1-a中创建一个GCE类型的持久化存储对象,挂载在test-pd的Pod中

gcloud compute disks create --size=500GB  my-data-disk

   --region us-central1

   --replica-zones us-central1-a,us-central1-b

在地域us-central1的两个可用地区us-central1-a,us-central1-b,创建一个共享的GCE类型的存储对象

Kubernetes技术与架构-存储 1_第4张图片

如上所示,创建一个PersistentVolume类型的持久化存储对象,两个可用地区us-central1-a,us-central1-b可共享使用

Kubernetes技术与架构-存储 1_第5张图片

如上所示,在Pod挂载一个hostPath类型的存储对象,将主机文件系统的/data目录挂载到Pod的目录/test-pd中

Kubernetes技术与架构-存储 1_第6张图片

如上所示,在Pod挂载两个hostPath的存储对象,分别将主机文件系统的目录或者文件挂载到Pod中

Kubernetes技术与架构-存储 1_第7张图片

如上所示,创建一个PersistentVolume类型的持久化的存储对象,挂载本地主机系统的磁盘或者分区或者目录,设置nodeAffinity,由Kubernetes集群调度到指定服务器节点node中

Kubernetes技术与架构-存储 1_第8张图片

如上所示,在Pod中挂载一个nfs类型的存储对象,nfs是共享式的互联网文件系统,可在Kubernetes集群内所有的Pod中共享存储,当Pod被删除的时候,内容也不会被删除

    

Kubernetes技术与架构-存储 1_第9张图片

如上所示,创建一个持久化的存储对象site-data,同一个Pod内运行多个容器实例,在每个容器实例中挂载一个site-data的子目录

Kubernetes技术与架构-存储 1_第10张图片

如上所示,创建一个主机存储对象workdir1,使用Kubernetes集群环境变量pod的名称作为子目录,标识不同应用的日志文件

你可能感兴趣的:(Kubernetes技术与架构,kubernetes,架构,容器,存储)