100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > OpenShift 4 Hands-on Lab (13) 使用持久化存储

OpenShift 4 Hands-on Lab (13) 使用持久化存储

时间:2021-06-10 13:32:10

相关推荐

OpenShift 4 Hands-on Lab (13) 使用持久化存储

《OpenShift 4.x HOL教程汇总》

说明:本文已经在OpenShift 4.6环境中验证

文章目录

OpenShift支持的存储的访问能力通过PVC使用存储

OpenShift支持的存储的访问能力

通过PVC使用存储

用一般用户新建一个名为USER-ID-pv的项目。

$ export USER_ID=YOUR-USER-ID$ oc new-project ${USER_ID}-pv

执行以下任一个命令创建测试应用。

$ oc new-app -l app=image-uploader --image-stream=php --code=/liuxiaoyu-git/image-uploader.git -n ${USER_ID}-pv$ oc new-app -l app=image-uploader php~/liuxiaoyu-git/image-uploader.git -n ${USER_ID}-pv$ oc new-app -l app=image-uploader /liuxiaoyu-git/image-uploader.git -n ${USER_ID}-pv

为应用生成route。

oc expose svc image-uploader -n ${USER_ID}-pv

打开image-uploader的route对应地址,然后上传一个JPG/GIF/PNG格式的图片文件。确认可以查看到上传的图片的缩略图。

执行以下命令,将部署的Pod扩展为2个。

$ oc scale dc image-uploader --replicas=2 -n ${USER_ID}-pv

由于相同浏览器通常都是共享Session的,因此需要用另外一款浏览器打开image-uploader的route对应链接。此时会发现新的浏览器中看不到图片缩略图,而原有浏览器可看到图片缩略图。在新的浏览器中上传另一个图片,会发现两各浏览器看到的是不同图片,这说明此时应用使用的是每个Pod的本地存储保存的图片。执行以下命令,查看Pod的名称。

$ oc get pod -n ${USER_ID}-pvNAME READY STATUSRESTARTS AGEimage-uploader-1-build 0/1Completed 023mimage-uploader-1-d8c5s 1/1Running021mimage-uploader-1-deploy 0/1Completed 021mimage-uploader-1-zq65k 1/1Running021m

然后删除image-uploader应用的这2个pod。稍后再次查看Pod,此时可发现OpenShift又创建了2个新的Pod。

$ oc delete pods -l app=image-uploader -n ${USER_ID}-pv$ oc get podNAME READY STATUS RESTARTS AGEimage-uploader-1-5s72r 1/1Running 091simage-uploader-1-88trb 1/1Running 093s

用两个浏览器分别打开image-uploader应用route链接,会发现图片全没有了。这说明Pod被删除后,其内部的图片会随之丢失。执行以下命令,查看OpenShift配置的StorgaClass(下面是在已经配置好的AWS gp2存储)。

$ oc get storageclass -n ${USER_ID}-pvNAME PROVISIONER AGEgp2 (default) kubernetes.io/aws-ebs 42h

切换到给用户的Administrator视图,然后通过Storage->Persistent Volume Claims中进入Create Persistent Volume Claim页面,按下面配置创建一个Persistent Volume Claim。

Name: USER-ID-pvc

Access Mode: Single User(RWO)

Size: 1GiB

从菜单进入Workloads->Deployment Configs中image-uploader的配置页面,然后进入右上方的Action->Add Storage。在Add Storage页面中为Use existing claim选择前面创建的USER-ID-pv,然后将Mount Path设为‘/opt/app-root/src/uploads’,然后点击Save按钮。

此时页面跳转到image-uploader的Delployment Config,可以看到OpenShift会自动重新部署该应用,通过滚动升级的方式用2个新Pod运行image-uploader。

在完成后新的部署后再次用一个浏览器访问该应用对应的route链接,上传文件后,然后使用另一款浏览器应该可也能看到上传的图片。再通过(8)删除2个Pod,OpenShift会自动新建2个pod。通过浏览器访问应用,发现还可看到以前上传的图片。在OpenShift控制台分别进入2个Pod的Terminal查看/opt/app-root/src/uploads目录,可看到刚刚上传的图片。这说明2个pod都使用了相同的storage。

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