100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > OpenShift 4 之使用持久化存储

OpenShift 4 之使用持久化存储

时间:2022-09-13 21:00:46

相关推荐

OpenShift 4 之使用持久化存储

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

没使用持久化存储

创建一个项目,然后在其中部署一个应用,再生成应用的Route,最后获取Route访问地址。

$ oc new-project my-storage$ oc new-app /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

查看pod状态,直到Running说明应用已经运行起来。

$ oc get podNAME READY STATUSRESTARTS AGEimage-uploader-1-build 0/1Completed 08m46simage-uploader-1-deploy 0/1Completed 04m19simage-uploader-1-xcbwx 1/1Running04m11s

用浏览器访问应用的Route地址,然后上传一个图片。确认可以查看到上传的图片的缩略图。执行以下命令,将运行的Pod扩展为2个。

$ oc scale dc image-uploader --replicas=2

用一个新的浏览器打开image-uploader的Route地址,此时会发现新的浏览器中看不到图片缩略图,而原有浏览器可看到图片缩略图。在新的浏览器中上传另一个图片,会发现两各浏览器看到的是不同图片,这说明此时应用使用的是Pod的本地存储保存的图片。执行命令删除2个pod,稍后OpenShift会自动2个新的Pod

$ oc delete pods -l app=image-uploader$ oc get pod -w

用两个浏览器分别打开image-uploader应用Route链接,会发现图片全没有了。这说明Pod被删除后,其内部的图片会随之丢失。

使用持久化存储

在Administrator视图中Storage->Persistent Volume Claims中进入my-storage项目的Create Persistent Volume Claim,按下面创建PVC。

Name:my-image-pvc

Access Mode:Single User(RWO)

Size: 100MB

进入Workloads->Deployment Configs中image-uploader的配置页面,进入Action->Add Storage。在页面中为Use existing claim选择my-image-pvc,然后将Mount Path设为“/opt/app-root/src/uploads”,然后点击Create按钮。此后OpenShift会自动重新部署。完成后再次用一个浏览器访问该应用Route地址。在上传文件后,使用另一个浏览器可也能看到上传的图片。分别通过2个Pod的Terminal查看/opt/app-root/src/uploads目录,可看到刚刚上传的图片。这说明2个Pod都使用了相同的存储。

再次删除2个Pod,OpenShift会自动新建2个Pod。通过浏览器访问应用,发现还可看到以前上传的图片。

$ oc delete pods -l app=image-uploader

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。