kubernetes(十二)存储
kubernetes中的Volume提供了在容器中挂载外部存储的能力Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume常用的数据卷本地(hostPath,emptyDir)网络(NFS,Ceph,GlusterFS)公有云(AWS,EBS)K8s资源(configmap,secret):对存储资源
Kubernetes 存储
文章目录
为什么需要存储卷?
容器在部署的过程中一般有以下三种数据:
- 启动时需要的初始数据,例如配置文件
- 启动过程中产生的临时数据,该临时数据需要多个容器间共享.
- 启动过程中产生的持久化数据,例如Mysql的data目录
数据卷概述
- kubernetes中的Volume提供了在容器中挂载外部存储的能力
- Pod需要设置卷来源(spec.volume)和挂载点(spec.containers.volumeMounts)两个信息后才可以使用相应的Volume
- 常用的数据卷
- 本地(hostPath,emptyDir)
- 网络(NFS,Ceph,GlusterFS)
- 公有云(AWS,EBS)
- K8s资源(configmap,secret)
临时存储卷,节点存储卷,网络存储卷
临时存储卷emptyDir
emptyDiR卷: 是一个临时存储卷,与Pod生命周期绑定一起,如果Pod删除了,卷也会被删除.
应用场景:Pod容器中的数据共享
- 边车(sidecar)
- 初始容器 (initcontainer)
节点存储卷hostPath
hostPath卷:挂载Node文件系统(Pod所在节点)上文件目录到Pod中的容器.
应用场景:Pod中容器需要访问宿主机文件
网络存储卷:NFS
NFS卷:提供对NFS挂载支持,可以自动将NFS共享路径挂载到POD中
NFS:是一个主流的文件共享服务器
使用mount -t nfs 172.16.10.61:/NFS-storgae /data 测试连接情况。
使用NFS存储的目标
- Pod将数据持久化到远程存储
- 可以实现Pod多副本共享数据
持久卷概述
- PersistentVolume(PV):对存储资源创建和使用的抽象,使得存储作为集群中的资源管理
- PersistentVolumeClaim(PVC):让用户不需要关心具体的Volume实现细节
PV与PVC使用流程
PV生命周期
- **PV与PVC的关系:**一对一
- **PV与PVC怎么匹配的:**存储空间,访问模式,匹配上可以配对。
- **容量匹配策略:**匹配最接近的PV容量,如果满足不了,pod将处于pending状态
- **存储空间的字段是限制使用容量?😗*这个字段是用作匹配的,目前没有做限制
PV动态供给
对于不支持内部制备器的存储类,可以使用又第三方提供的验证过的外部制备器
https://github.com/kubernetes-sigs/sig-storage-lib-external-provisioner
例如NFS外部制备器下载地址
https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
class.yaml用于创建存储类
deployment.yaml用于创建外部制备器,(以POD的形式)
rbac.yaml保持不变
运行三个yaml文件
此时可以通过kubectl get sc
查看存储类
创建deployment样例
查看pv以及pvc,已经自动创建完成
有状态应用部署: statefulSet工作负载控制器
无状态与有状态:
Deployment控制器的设计原则:管理的所有Pod一摸一样,提供同一个服务,也不考虑在那台Node运行,可以随意扩容和缩容,这种应用成为无状态应用,例如Web服务
在实际的场景中,这并不能满足所有应用,尤其是分布式应用,会部署多个实例,这些实例之间往往有依赖关系,例如主从关系、主备关系、这种应用称为“有状态”,例如MySQL主从、Etcd集群。
总而言之在K8S中
**无状态可以理解为:**不用考虑多副本时之间的关系,可以多容器同时存在
**有状态应用可以理解为:**部署不对等服务时,部署的应用。
例如部署一个MYSQL主从,可能要考虑这些问题:
- 主和从实例启动顺序
- 主和从实例数据目录必须唯一
- 从连接主实例需要指定IP或者主机名
创建完成后查看一下pv,pvc,service,pod
StatefulSet和Deployment区别:有身份的!
身份三要素:
- 域名
- 主机名
- 存储(pvc)
应用程序配置文件存储 ConfigMap
敏感数据存储: Secret
更多推荐
所有评论(0)