OpenShift 4 之使用持久化存储

36 篇文章 0 订阅

容器属于“凤凰”型环境,即可以用后即焚。因此就需要持久化存储保存应用数据,为此才有了PersistentVolume、PersistentVolumeClaim、StorageClass这些概念和对象。

没使用持久化存储

  1. 创建一个项目,然后在其中部署一个应用,再生成应用的Route,最后获取Route访问地址。
$ oc new-project my-storage
$ oc new-app https://github.com/liuxiaoyu-git/image-uploader.git
$ oc expose svc image-uploader
$ oc get route image-uploader -o template --template '{{.spec.host}}'
image-uploader-persistent-storage.apps-crc.testing
  1. 查看pod状态,直到Running说明应用已经运行起来。
$ oc get pod
NAME                      READY   STATUS      RESTARTS   AGE
image-uploader-1-build    0/1     Completed   0          8m46s
image-uploader-1-deploy   0/1     Completed   0          4m19s
image-uploader-1-xcbwx    1/1     Running     0          4m11s
  1. 用浏览器访问应用的Route地址,然后上传一个图片。确认可以查看到上传的图片的缩略图。
  2. 执行以下命令,将运行的Pod扩展为2个。
$ oc scale dc image-uploader --replicas=2
  1. 用一个新的浏览器打开image-uploader的Route地址,此时会发现新的浏览器中看不到图片缩略图,而原有浏览器可看到图片缩略图。在新的浏览器中上传另一个图片,会发现两各浏览器看到的是不同图片,这说明此时应用使用的是Pod的本地存储保存的图片。
  2. 执行命令删除2个pod,稍后OpenShift会自动2个新的Pod
$ oc delete pods -l app=image-uploader
$ oc get pod -w
  1. 用两个浏览器分别打开image-uploader应用Route链接,会发现图片全没有了。这说明Pod被删除后,其内部的图片会随之丢失。

使用持久化存储

  1. 在Administrator视图中Storage->Persistent Volume Claims中进入my-storage项目的Create Persistent Volume Claim,按下面创建PVC。
    Name:my-image-pvc
    Access Mode:Single User(RWO)
    Size: 100MB
    在这里插入图片描述
  2. 进入Workloads->Deployment Configs中image-uploader的配置页面,进入Action->Add Storage。
  3. 在页面中为Use existing claim选择my-image-pvc,然后将Mount Path设为“/opt/app-root/src/uploads”,然后点击Create按钮。此后OpenShift会自动重新部署。
  4. 完成后再次用一个浏览器访问该应用Route地址。在上传文件后,使用另一个浏览器可也能看到上传的图片。
  5. 分别通过2个Pod的Terminal查看/opt/app-root/src/uploads目录,可看到刚刚上传的图片。这说明2个Pod都使用了相同的存储。
    在这里插入图片描述
  6. 再次删除2个Pod,OpenShift会自动新建2个Pod。通过浏览器访问应用,发现还可看到以前上传的图片。
$ oc delete pods -l app=image-uploader
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值