数据持久化常用的有两种:

hostPath 挂载容器宿主机的本地文件夹,直接修改pod的配置

  volumes:
- hostPath:
path: /data/logging-es
type: ''
name: elasticsearch-storage

这种方式虽然简单但是有个致命缺点就是容器必须运行在某个node节点上

  nodeName: oc-node02

还有就是重点要说的网络存储:

因为oc是基于k8s的所以k8s支持的存储类型oc都支持

k8s支持存储:https://kubernetes.io/docs/concepts/storage/persistent-volumes/

下面主要说两个一个是NFS和glusterfs

1、NFS

为docker-registry配置数据持久化

创建pv

# vim pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
name: registry-storage-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
path: /opt/nfs
server: nfs.server
readOnly: false # oc create -f pv.yaml

创建pvc

# vim pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: registry-storage
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
# oc project default
# oc create -f pvc.yaml

挂载存储

# oc set volume dc/docker-registry --add --name=registry-storage -t pvc --claim-name=registry-storage --overwrite
# oc set volume dc/docker-registry --add --name=registry-storage -m /registry --overwrite

1、glusterfs

glusterfs是红帽自家的分布式存储部署起来就很简单了

修改/etc/ansible/hosts文件加入以下内容

[OSEv3:children]
glusterfs
[OSEv3:vars]
openshift_storage_glusterfs_namespace=app-storage
openshift_storage_glusterfs_storageclass=true
openshift_storage_glusterfs_storageclass_default=true
openshift_storage_glusterfs_block_deploy=true
openshift_storage_glusterfs_block_host_vol_size=
openshift_storage_glusterfs_block_storageclass=true
openshift_storage_glusterfs_block_storageclass_default=false
[glusterfs]
n1.example.com glusterfs_devices='[ "/dev/xvdb", "/dev/xvdc" ]'
n1.example.com glusterfs_devices='[ "/dev/xvdb", "/dev/xvdc" ]'
n1.example.com glusterfs_devices='[ "/dev/xvdb", "/dev/xvdc" ]'

运行部署程序

# ansible-playbook /root/openshift-ansible/playbooks/openshift-glusterfs/config.yml

部署好之后查看storageclass

# oc get storageclass

其实oc(k8s)是不能支持直接操作glusterfs的是借助heketi来管理glusterfs卷的,所以heketi的稳定性至关重要

# oc project app-storage
# oc get pod

如果以后在web console 创建pvc都是默认使用glusterfs-storage storageclass动态创建pv和glusterfs卷很方便

可以看到pv已经自动建好了,当然你删了pvc pv也会自动删除,heketi也会删除关联的glusterfs卷

openshift 容器云从入门到崩溃之七《数据持久化》的更多相关文章

  1. openshift 容器云从入门到崩溃之八《日志聚合》

    日志可以分为两部分 业务日志 业务日志一般是要长期保留的,以供以后有问题随时查询,elk是现在比较流行的日志方案,但是容器日志最好不要落地所以不能把logstash客户端包在容器里面 可以使用logs ...

  2. openshift 容器云从入门到崩溃之六《Source-to-Image》

    上次说到了怎么在oc上面部署应用而且说道了怎么定义模板部署应用,也许你会奇怪那个我代码打包编译在哪一步,那就要说道oc的s2i流程了 下面是基本s2i流程 1.制作base-image镜像 要使用s2 ...

  3. openshift 容器云从入门到崩溃之五《部署应用》

    1.配置部署模板 配置好用户权限之后就可以部署应用了oc常用的两种部署方式: Deploy Image方式 优点:这种方式是最简单的部署方式,你只需要有一个容器镜像就行了或者公开的docker hub ...

  4. openshift 容器云从入门到崩溃之二《准备环境》

    openshift 从3.9开始就开始支持系统组件在容器里运行了,之前版本都是直接运行在操作系统上,名字也改了叫OKD 目前最新的稳定版本是3.11,所以就安装3.11版本 准备环境: 主机名 系统 ...

  5. openshift 容器云从入门到崩溃之一《容器能解决什么问题》

    容器前时代 说到容器大多数人想到的就是docker,docker的迅速崛起使得使用容器的门槛大大降低了,我第一次接触docker还是14年,那时候作为一名运维部署应用还在大量使用虚拟化,从vmware ...

  6. openshift 容器云从入门到崩溃之九《容器监控-报警》

    容器状态监控 主要是监控POD的状态包括重启.不健康等等这些k8s api 状态本身会报出来,在配合zabbix报警 导入zabbix模板关联上oc master主机 <?xml version ...

  7. openshift 容器云从入门到崩溃之三《安装openshift》

    准备好环境,在安装之前请先了解openshift提供的ansible有大量的安装选项 文档地址:https://docs.okd.io/latest/install/configuring_inven ...

  8. openshift 容器云从入门到崩溃之十《容器监控-数据展示》

    POD资源历史曲线(CPU.内存.网络) 监控方案heapster+hawkular-metrics+hawkular-cassandra heapster负责收集数据 hawkular-cassan ...

  9. openshift 容器云从入门到崩溃之四《配置用户验证》

    1.配置本地用户 之前安装的时候选择了htpasswd验证方式 先创建用户 # htpasswd -c /etc/origin/master/htpasswd admin 授权为集群管理员 # oc ...

随机推荐

  1. Sublime Text 代码块注释

    插件:Doc​Blockr /*回车:创建一个代码块注释 /**回车:在自动查找函数中的形参等等.

  2. 给页面点击链接加了转圈圈和解决遇到的bug

    今天遇到一个问题,之前给整个网站上的链接加了loading,今天遇到在ios的chrome和safari下点击进入新页面然后点击浏览器的返回按钮,loading还在,并且一直存在,最后网上搜到了解决方 ...

  3. 【LeetCode】二叉搜索树的前序,中序,后续遍历非递归方法

    前序遍历 public List<Integer> preorderTraversal(TreeNode root) { ArrayList<Integer> list = n ...

  4. [mvc] 过滤器filter一览

    1.mvc的过滤器种类

  5. Laravel-mix 中文文档

    镜像地址 : https://segmentfault.com/a/1190000015049847原文地址: Laravel Mix Docs   概览   基本示例 larave-mix 是位于w ...

  6. 一个tomcat服务器上部署多个Web项目,不同域名访问

    [参考]一个tomcat服务器上部署多个项目,不同域名访问 我们一个服务器只按装了一个tomcat服务器,现在有多个项目或者多个域名访问,下面来进行配置 在这里我们只需要修改conf下的server. ...

  7. springmvc date

    数据格式化,从本质上讲属于数据转换的范畴.Spring就是基于数据转换框架植入“格式化”功能的. 在数据转换时我们进行了如下配置: 我们使用的是ConversionServiceFactoryBean ...

  8. PXE:另类方式启动 centos live

    default menu.c32 timeout 1 label centos76-live-by-other menu label centos76-live from ftp by other k ...

  9. Object.assign方法的使用

    https://www.cnblogs.com/chenyablog/p/6930596.html

  10. 通过poi的XSSF实现生成excel文件

    maven导入依赖jar包: <dependency> <groupId>org.apache.poi</groupId> <artifactId>po ...