rancher设置服务的持久化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rancher设置服务的持久化相关的知识,希望对你有一定的参考价值。

参考技术A

本文章分为两部分,第一部分是Deployment无状态服务的工作负载做持久化,第二部分是类似redis的StatefulSet有状态服务做持久化。

整个过程是:创建PV(并且选择插件类型Ceph或nfs等)-> 创建PVC并关联PV -> 业务负载关联PVC

通用方法(手动创建PV、PVC,不使用存储类自动创建): https://www.zasters.com/?p=161

一些概念:
每个pod启动会新建一个PVC,并且PVC不会随着pod的减少而删除;一个pod经过创建、删除、再创建,此pod会在原来的节点上,使用原来的PVC;pod通过PVC去请求PV存储,PVC和PV一一对应,PV和PVC中的storageClassName字段必须一致,PV们是集群的一段网络存储,针对整个集群,由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式有关,比如 Ceph、GlusterFS、NFS 等,都是通过插件机制完成与共享存储的对接。StorageClass为管理员提供了一种描述他们提供的存储的“类”的方法,PV是运维人员来创建的,开发操作PVC,可是大规模集群中可能会有很多PV,如果这些PV都需要运维手动来处理这也是一件很繁琐的事情,所以就有了动态供给概念,也就是Dynamic Provisioning,动态供给的关键就是StorageClass,它的作用就是创建PV模板。创建StorageClass里面需要定义PV属性比如存储类型、大小等;另外创建这种PV需要用到存储插件。 最终效果是,用户提交PVC,里面指定存储类型,如果符合我们定义的StorageClass,则会为其自动创建PV并进行绑定。 如果集群中没有StorageClass的动态供应PVC的机制,也可以提前手动创建多个PV、PVC,手动创建的PVC名称必须符合之后创建的StatefulSet命名规则:(volumeClaimTemplates.name)-(pod_name)
PV 的回收策略为 Recycle,目前 PV 支持的策略有三种:

一个 PV 的生命周期中,可能会处于4中不同的阶段:

PV的三种访问方式:

一般通过nas存储基于nfs实现
1.直接配置deployment方式(不创建PV卷及PVC,使用已有的卷):

172.21.9.9/0003a9_yl2就是分配的NAS地址和目录/apprun/nasdata就是pod里的目录,挂载到这块NAS盘,kubectl apply -f XXXX.yamll的时候自动挂载,pod目录自动创建
2.动态存储持久卷PV,PVC
创建PV:

deployment配置:

一般创建PV和PVC(PV插件为nfs或Ceph RBD)
这里展示Ceph RBD方式:
1.挂载ceph存储(仅支持单副本存储,不支持多副本共享.子目录首次手动创建)

2.StatefulSet配置

PS:或者不需要设置PVC,直接在StatefulSet中设置pvc的模板(volumeClaimTemplates),将自动创建pvc:

参考:
https://www.cnblogs.com/zjz20/p/12807286.html
https://blog.csdn.net/weixin_44729138/article/details/106054025

Rancher2.0中使用外置NFS存储部署Nginx实验


目录:

1、环境准备工作

    1.1 准备好Rancher2.0集群环境

    1.2 准备好外部NFS服务器

2、Rancher2.0中使用NFS存储的方法

    2.1 在集群中创建持久卷(PV)

    2.2 在项目/命名空间中创建数据卷(PVC)

    2.3 部署工作负载(Nginx)时使用PVC

3、验证

    3.1 在NFS目录中创建网页文件

    3.2 访问网页


简述:

Rancher2.0是一款非常棒的、开源免费的、易学易用的、企业级K8S容器云管理平台。有别于之前的Rancher1.6版,Rancher2.0是完全基于K8S开发的,它的图形化界面使得普通用户使用和管理K8S变得非常方便。

由于刚刚发布不久,官方文档还不是很全面,为此RancherLab中国区安排了一线开发的工程师,做了十期使用培训,介绍了基本概念和实战演示,整个培训完全免费!视频可以在线回放。培训视频回放链接:

https://blog.csdn.net/csdn_duomaomao/article/details/80411198

https://blog.csdn.net/csdn_duomaomao/article/details/79534312

Rancher2.0通过图形化的界面,把K8S中PV、PVC的抽象化概念,直观地表现出来。原本需要开发人员敲键盘、写代码才能完成的各种K8S的yaml文件,还需要技术人员懂得如何部署使用这些资源。现在普通技术人员,稍加培训就可以胜任工作,非常直观易用。

关于Rancher 2.0如何使用NFS存储,因为太简单,本来不想写,但新手上路,还是会遇到很多问题,因此还是整理了一篇吧。


1、环境准备工作

1.1 准备好Rancher2.0集群环境

机器名      IP地址      主机角色      

Rancher2  192.168.3.220  Rancher Server

Node221  192.168.3.221  etcd、control、worker

Node222  192.168.3.222  etcd、control、worker

Node223  192.168.3.223  etcd、control、worker

NFS7     192.168.3.167   NFS Server

使用自定义方式安装集群过程略,请参考:

《使用Rancher 2.0创建K8S集群》视频网址:http://e.vhall.com/431874021

《使用Rancher 2.0管理Kubernetes集群》

视频网址:http://www.itdks.com/liveevent/detail/10889

《Kubernetes部署与使用入门》视频网址:http://www.itdks.com/liveevent/detail/10609

图01-Rancher2.0集群安装完毕后的状态-集群

技术分享图片

图02-Rancher2.0集群安装完毕后的状态-节点

技术分享图片

1.2 准备好外部NFS服务器

安装过程略,请参考: https://blog.csdn.net/csdn_duomaomao/article/details/77822883

服务器IP:192.168.3.167

共享目录:/nfs/data

图03-NFS存储服务器IP地址及共享目录

技术分享图片

2、Rancher2.0中使用NFS存储的方法

2.1 在集群中创建持久卷(PV)

图04-在集群中添加持久卷

技术分享图片

图05-填写添加持久卷参数-名称-卷插件-容量-路径-服务器-访问模式

技术分享图片

图06-持久卷PV添加完成后的可用状态-Available

技术分享图片

2.2 在项目/命名空间中创建数据卷(PVC)

图07-添加数据卷-先选择项目-数据卷-添加卷

技术分享图片

图08-添加数据卷-卷声明名称-选择刚创建的持久化卷-访问模式

技术分享图片

图09-数据卷的卷声明和持久卷已经绑定完毕

技术分享图片

2.3 部署工作负载(Nginx)时使用PVC

图10-部署一个服务

技术分享图片

图11-使用nginx镜像创建一个名为my-nginx-nfs的工作负载-映射NodePort端口到每台主机

技术分享图片

图12-续-添加my-nginx-nfs的工作负载时-使用现有的持久化卷

技术分享图片

图13-选择刚创建的nfs-pvc-nginx持久化卷声明-设定挂载目录和NFS中的子路径

技术分享图片

图14-服务部署完毕-点击节点端口链接

技术分享图片

3、验证

3.1 在NFS目录中创建网页文件

图15-在NFS服务器端的目录中,编写一个测试页面index.html

技术分享图片

3.2 访问网页

图16-访问nginx服务的主机端口-显示刚刚创建的HTML页面文件-OK

技术分享图片

以上是关于rancher设置服务的持久化的主要内容,如果未能解决你的问题,请参考以下文章

Rancher容器目录持久化

利用rancher部署监控系统并实现存储持久化

手把手教你用Rancher创建产品质量数据库设置

Rancher,K8S持久性存储Ceph RBD搭建及配置

K8S原生存储持续进化,Longhorn 1.1迎来ARM支持

Redis禁用持久化功能的设置