金鱼哥RHCA回忆录:DO280私有仓库持久存储与章节实验

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 第六章 DO280私有仓库持久存储与章节实验
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


📜私有仓库持久存储

📑创建私有仓库持久卷

OCP内部仓库是source-to-image(S2I)流程的一个重要组件,该流程用于从应用程序源代码创建pod。S2I流程的最终输出是一个容器image,它被推送到OCP内部仓库,然后可以用于部署。

在生产环境中,通常建议为内部仓库提供一个持久性存储。否则,在重新创建registry pod之后,S2I创建的pod可能无法启动。例如,在master节点重新启动之后。

OpenShift安装程序配置并启动一个默认的持久仓库,该仓库使用NFS共享,由Inventory文件中的openshift_hosted_registry_storage_*变量定义。在生产环境中,Red Hat建议由外部专用的存储提供持久性存储,该服务器配置为弹性和高可用性。

高级安装程序将NFS服务器配置为使用外部NFS服务器上的持久存储,在[NFS]字段中定义的一个NFS服务器的列表。该服务器与openshift_hosted_registry_storage*变量一起使用,以配置NFS服务器。

示例配置:

[OSEv3:vars]
openshift_hosted_registry_storage_kind=nfs        #定义OCP存储后端
openshift_hosted_registry_storage_access_modes=['ReadWriteMany']    #定义访问模式,默认为ReadWriteMany,表示允许多个节点以读写形式挂载
openshift_hosted_registry_storage_nfs_directory=/exports        #定义NFS服务器上的NFS存储目录
openshift_hosted_registry_storage_nfs_options='*(rw,root_squash)'    #定义存储卷的NFS选项。这些选项被添加到/etc/ exports.d/openshift-ansible.exports中。rw选项允许对NFS卷进行读写访问,root_squash选项阻止远程连接的根用户拥有root特权,并为nfsnobody分配用户ID
openshift_hosted_registry_storage_volume_name=registry        #定义要用于持久仓库的NFS目录的名称
openshift_hosted_registry_storage_volume_size=40Gi            #定义持久卷大小
... output omitted ...
[nfs]
services.lab.example.com

在为持久仓库安装和配置存储之后,OpenShift在OpenShift项目中创建一个名为register-volume的持久卷。持久性卷的容量为40gb,并且根据定义设置了Retain策略。同时默认项目中的pvc调用pv。

[student@workstation ~]$ oc describe pv registry-volume
Name:            registry-volume       #定义持久卷名
Labels:          <none>
Annotations:     pv.kubernetes.io/bound-by-controller=yes
StorageClass:
Status:          Bound
Claim:           default/registry-claim  #定义使用持久卷的声明
Reclaim Policy:  Retain                   #默认持久卷策略,具有Retain策略的卷在从其声明中释放后不会被擦除
Access Modes:    RWX                   #定义持久卷的访问模式,由Ansible inventory文件的openshift_hosted_registry_storage_access_modes=['ReadWriteMany']变量定义
Capacity:        40Gi                   #定义持久卷的大小,由Ansible inventory文件的openshift_hosted_registry_storage_volume_size变量定义
Message:
Source:                                #定义存储后端的位置和NFS共享
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    services.lab.example.com
    Path:      /exports/registry
    ReadOnly:  false
Events:        <none>

运行以下命令,确认OpenShift内部仓库已配置registry-volume作为默认的PersistentVolumeClaim。

[user@demo ~] oc describe dc/docker-registry | grep -A4 Volumes
  Volumes:
   registry-storage:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  registry-claim
    ReadOnly:   false

OCP内部仓库将image和metadata存储为普通文件和文件夹,这意味着可以检查PV源存储,查看仓库是否向其写入了文件。

在生产环境中,这是通过访问外部NFS服务器来完成的。但是,在本环境中,NFS共享是在services的VM上配置的,因此ssh至services查看,以便于验证OCP内部仓库成功将image存储到持久存储中。

示例:一个名为hello的应用程序在default命名空间中运行,下面的命令验证图像是否存储在持久存储中。

[user@demo ~] ssh root@master ls -l \
/var/export/registryvol/docker/registry/v2/repositories/default/

📜章节实验

📑环境准备

[student@workstation ~]$ lab install-prepare setup
[student@workstation ~]$ cd /home/student/do280-ansible
[student@workstation do280-ansible]$ ./install.sh

提示:若已经拥有一个完整环境,可不执行


📑本练习准备

[student@workstation ~]$ lab storage-review setup

📑配置NFS

本实验不详解NFS的配置和创建,直接使用/root/DO280/labs/deploy-volume/config-nfs.sh脚本实现,具体脚本内容可通过以下方式查看。

同时NFS由services节点提供。

[root@services ~]# less -FiX /root/DO280/labs/storage-review/config-review-nfs.sh
[root@services ~]# /root/DO280/labs/storage-review/config-review-nfs.sh      #创建NFS
[root@services ~]# showmount -e                                           #确认验证
Export list for services.lab.example.com:
/var/export/dbvol                *
/var/export/review-dbvol         *
/exports/prometheus-alertbuffer  *
/exports/prometheus-alertmanager *
/exports/prometheus              *
/exports/etcd-vol2               *
/exports/logging-es-ops          *
/exports/logging-es              *
/exports/metrics                 *
/exports/registry                *

📑创建持久卷

[student@workstation ~]$ oc login -u admin -p redhat https://master.lab.example.com
[student@workstation ~]$ less -FiX /home/student/DO280/labs/storage-review/review-volume-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: review-pv
spec:
  capacity:
    storage: 3Gi
  accessModes:
  - ReadWriteMany
  nfs:
    path: /var/export/review-dbvol
    server: services.lab.example.com
  persistentVolumeReclaimPolicy: Recycle
[student@workstation ~]$ oc create -f /home/student/DO280/labs/storage-review/review-volume-pv.yaml
[student@workstation ~]$ oc get pv        #查看PV
NAME               CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                   STORAGECLASS   REASON    AGE
etcd-vol2-volume   1G         RWO            Retain           Bound       openshift-ansible-service-broker/etcd                            6d
registry-volume    40Gi       RWX            Retain           Bound       default/registry-claim                                           6d
review-pv          3Gi        RWX            Recycle          Available                                                                    5s

📑部署模板

[student@workstation ~]$ less -FiX /home/student/DO280/labs/storage-review/instructor-template.yaml
[student@workstation ~]$ oc create -n openshift -f /home/student/DO280/labs/storage-review/instructor-template.yaml
#使用模板创建应用至openshift namespace中

📑创建项目

[student@workstation ~]$ oc login -u developer -p redhat https://master.lab.example.com
[student@workstation ~]$ oc new-project instructor

📑web部署应用

浏览器访问: https://master.lab.example.com

在这里插入图片描述

选择Catalog

在这里插入图片描述

选择PHP,并使用instructor-template。

在这里插入图片描述

设置Application Hostname,然后直接下一步,模板会创建一个数据库服务器。

在这里插入图片描述

单击Continue to project overview以监视应用程序的构建过程。从提供的服务框架中,单击instructor。单击部署配置#1条目旁边的下拉箭头,打开部署面板。当构建完成时,build部分的Complete旁边应该出现一个绿色的复选标记。

在这里插入图片描述

在这里插入图片描述


📑端口转发

[student@workstation ~]$ oc login -u developer -p redhat https://master.lab.example.com
[student@workstation ~]$ oc get pod
NAME                 READY     STATUS      RESTARTS   AGE
instructor-1-build   0/1       Completed   0          15m
instructor-1-zqtwp   1/1       Running     0          14m
mysql-1-2k8kb        1/1       Running     0          15m 
[student@workstation ~]$ oc port-forward mysql-1-2k8kb 3306:3306

📑填充数据库

[student@workstation ~]$ mysql -h127.0.0.1 -u instructor -ppassword \
instructor < /home/student/DO280/labs/storage-review/instructor.sql
[student@workstation ~]$ mysql -h127.0.0.1 -u instructor -ppassword instructor -e "select * from instructors;"    
+------------------+-----------------+--------------------------------+----------------+-------+------------+---------------+
| instructorNumber | instructorName  | email                          | city           | state | postalCode | country       |
+------------------+-----------------+--------------------------------+----------------+-------+------------+---------------+
|              103 | DemoUser1       | duser1@workstation.example.com | Raleigh        | NC    | 27601      | United States |
|              112 | InstructorUser1 | iuser1@workstation.example.com | Rio de Janeiro | RJ    | 22021-000  | Brasil        |
|              114 | InstructorUser2 | iuser2@workstation.example.com | Raleigh        | NC    | 27605      | United States |
|              123 | InstructorUser3 | iuser3@workstation.example.com | Sao Paulo      | SP    | 01310-000  | Brasil        |
+------------------+-----------------+--------------------------------+----------------+-------+------------+---------------+

📑测试访问

在这里插入图片描述

workstations的浏览器访问:http://instructor.apps.lab.example.com


📑测试添加数据

在这里插入图片描述
在这里插入图片描述


📑确认验证

[student@workstation ~]$ lab storage-review grade        #环境脚本判断实验

📑清除实验

[student@workstation ~]$ oc login -uadmin -predhat
[student@workstation ~]$ oc delete project instructor
[student@workstation ~]$ oc delete pv review-pv
[student@workstation ~]$ ssh root@services
[root@services ~]# rm -rf /var/export/review-dbvol
[root@services ~]# rm -f /etc/exports.d/review-dbvol.exports

💡总结

  • Red Hat OpenShift容器平台使用PersistentVolumes (PVs)为pods提供持久存储。
  • OpenShift项目使用PersistentVolumeClaim (PVC)资源来请求将PV分配给项目。
  • OpenShift安装程序配置并启动一个默认仓库,它使用从OpenShift主程序导出的NFS共享。
  • 一组Ansible变量允许为OpenShift默认仓库配置一个外部NFS存储。这将创建一个持久卷和一个持久卷声明。

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第六章 DO280私有仓库持久存储与章节实验 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
消息中间件 运维 算法
金鱼哥RHCA回忆录:CL210OpenStack操作的故障排除--章节实验
第九章 OpenStack操作的故障排除--章节实验
544 2
金鱼哥RHCA回忆录:CL210OpenStack操作的故障排除--章节实验
|
存储 运维 Kubernetes
金鱼哥RHCA回忆录:DO280分配持久性存储
第六章 DO280分配持久性存储
110 0
金鱼哥RHCA回忆录:DO280分配持久性存储
|
存储 Kubernetes 监控
金鱼哥RHCA回忆录:DO280安装和配置Metric系统
第八章 安装和配置Metric系统
222 0
 金鱼哥RHCA回忆录:DO280安装和配置Metric系统
|
运维 Kubernetes 监控
金鱼哥RHCA回忆录:DO280管理和监控OpenShift平台--资源限制
第九章 管理和监控OpenShift平台--资源限制
168 0
金鱼哥RHCA回忆录:DO280管理和监控OpenShift平台--资源限制
|
运维 JavaScript 关系型数据库
金鱼哥RHCA回忆录:DO280管理应用部署--管理image 、IS、Templates与章节实验
第七章 DO280管理应用部署--管理image 、IS、Templates与章节实验
193 0
 金鱼哥RHCA回忆录:DO280管理应用部署--管理image 、IS、Templates与章节实验
|
JSON 运维 负载均衡
金鱼哥RHCA回忆录:DO280管理应用部署--RC
第七章 DO280管理应用部署--RC
216 0
金鱼哥RHCA回忆录:DO280管理应用部署--RC
|
运维 关系型数据库 Linux
金鱼哥RHCA回忆录:DO280OpenShift命令及故障排查--常见故障排除和章节实验
第四章 OpenShift命令及故障排查--常见故障排除和章节实验
352 0
金鱼哥RHCA回忆录:DO280OpenShift命令及故障排查--常见故障排除和章节实验
|
JSON 运维 负载均衡
金鱼哥RHCA回忆录:DO280OpenShift网络--创建router练习与章节实验
第三章 OpenShift网络--创建router练习与章节实验
183 0
金鱼哥RHCA回忆录:DO280OpenShift网络--创建router练习与章节实验
|
运维 Kubernetes 负载均衡
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
第三章 OpenShift网络--平台网络实现
191 0
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
|
运维 Linux 数据安全/隐私保护
金鱼哥RHCA回忆录:DO280OpenShift安装与部署--安装部署与验证
第二章 OpenShift安装与部署--安装部署与验证
229 0
金鱼哥RHCA回忆录:DO280OpenShift安装与部署--安装部署与验证