当前位置: 首页 > wzjs >正文

外贸网站建设论坛建立网站时间

外贸网站建设论坛,建立网站时间,果洛电子商务网站建设多少钱,网站及其建设的心得一、Rook 概述 Rook 是一款开源的云原生存储编排器,专为 Kubernetes 设计,旨在实现 Ceph 分布式存储系统的自动化部署与管理。它通过 Kubernetes Operator 框架,将 Ceph 的复杂存储管理任务简化为一系列自动化流程,使存储服务具备…

一、Rook 概述

Rook 是一款开源的云原生存储编排器,专为 Kubernetes 设计,旨在实现 Ceph 分布式存储系统的自动化部署与管理。它通过 Kubernetes Operator 框架,将 Ceph 的复杂存储管理任务简化为一系列自动化流程,使存储服务具备自我管理、自我扩展和自我修复的能力。

Rook 与 Ceph 的结合,为 Kubernetes 提供了文件、块和对象三种存储类型的支持,满足了不同应用场景下的存储需求。Rook 项目由云原生计算基金会(CNCF)托管,是毕业级项目,具有高度的稳定性和可靠性。

二、环境准备

硬件环境

本次实战基于以下硬件环境:

主机名IP 地址主机配置
master23110.0.0.231/244Core8GB/100G+300G+500G
master23210.0.0.232/244Core8GB/100G+300G+500G
master23310.0.0.233/244Core8GB/100G+300G+500G

软件环境

  • Kubernetes 版本:v1.23.17

  • Rook 版本:v1.13.10

检查磁盘

在各个节点上检查磁盘情况:

[root@master231 ~]# lsblk
NAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
...
sdb     8:16   0  300G  0 disk 
sdc     8:32   0  500G  0 disk

移除污点

为了使节点能够运行 Pod,移除 master 节点的污点:

[root@master231 ~]# kubectl taint node master231 node-role.kubernetes.io/master-

三、Rook 部署 Ceph 集群

下载并解压 Rook

[root@master231 ~]# wget https://github.com/rook/rook/archive/refs/tags/v1.13.10.tar.gz
[root@master231 ~]# tar xf rook-1.13.10.tar.gz

部署 Rook Operator

进入解压后的目录,部署 Rook Operator:

[root@master231 examples]# kubectl apply -f crds.yaml -f common.yaml -f operator.yaml

部署 Ceph 集群

部署 Ceph 集群:

[root@master231 examples]# kubectl apply -f cluster.yaml

部署 Rook Ceph 工具

部署 Rook Ceph 工具,用于后续的命令行操作:

[root@master231 examples]# kubectl apply -f toolbox.yaml

部署 Ceph Dashboard

部署 Ceph Dashboard,用于图形化管理 Ceph 集群:

[root@master231 examples]# kubectl apply -f dashboard-external-https.yaml

查看 Pod 列表

查看 Rook Ceph 相关的 Pod 状态,确认所有组件正常运行:

[root@master231 examples]# kubectl get pods,svc -n rook-ceph -o wide

获取 Ceph Dashboard 登录密码

获取 Dashboard 的登录密码:

[root@master231 /k8s/manifests/helm]# kubectl -n rook-ceph get secrets rook-ceph-dashboard-password -o jsonpath='{.data.password}' | base64 -d ;echo
-`-^>D'()^5f}/B!3`8{
[root@master231 examples]# 

访问 Ceph Dashboard

通过以下命令获取 Dashboard 的访问地址:

[root@master231 examples]# kubectl get svc -n rook-ceph

访问 https://{任意节点IP}:32588 即可登录 Dashboard。

基于命令行访问 Ceph 集群

找到 Rook 提供的命令行工具 Pod:

[root@master231 examples]# kubectl get pods -n rook-ceph -l app=rook-ceph-tools

进入工具 Pod,执行 Ceph 命令查看集群状态:

[root@master231 examples]# kubectl -n rook-ceph exec -it rook-ceph-tools-5846d4dc6c-cxbxb -- sh
sh-4.4$ ceph -s

查看 Ceph 集群的 OSD 树结构:

sh-4.4$ ceph osd tree

四、Kubernetes 对接 Ceph 的 RBD 块存储基于 keyring 文件认证实战

创建存储池和块设备

在 Ceph 集群中创建存储池和块设备:

sh-4.4$ ceph osd pool create caofacan
sh-4.4$ ceph osd pool application enable caofacan rbd
sh-4.4$ rbd create -s 2048 linux96 -p caofacan

安装 Ceph 客户端模块

在所有 Kubernetes 节点上安装 Ceph 客户端模块:

[root@master231 ~]# apt -y install ceph-common

拷贝客户端证书文件

将 Ceph 客户端证书文件拷贝到所有节点:

[root@master231 volumes]# kubectl -n rook-ceph cp rook-ceph-tools-5846d4dc6c-lrgm8:/etc/ceph/keyring /etc/ceph/keyring

编写资源清单文件

编写 Kubernetes Deployment 资源清单文件,挂载 RBD 块设备:

[root@master231 volumes]# cat 01-deploy-volumes-rbd.yaml

部署并验证

部署资源清单文件,验证 Pod 是否正常运行:

[root@master231 volumes]# kubectl apply -f 01-deploy-volumes-rbd.yaml
[root@master231 volumes]# kubectl get po

通过 curl 命令验证服务是否正常:

[root@master231 volumes]# curl 10.100.0.74

五、Kubernetes 基于 Secret 存储 Ceph 的认证信息对接 RBD

移除认证信息

移除所有 worker 节点上的认证信息:

[root@master231 ~]# rm -f /etc/ceph/keyring

将认证信息基于 Secret 存储

在 Kubernetes 中创建 Secret,存储 Ceph 认证信息:

[root@master231 volumes]# kubectl -n rook-ceph exec rook-ceph-tools-5846d4dc6c-cxbxb -- ceph auth print-key client.admin;echo

编写资源清单文件,引用 Secret:

[root@master231 volumes]# cat 02-deploy-volumes-rbd-secretRef.yaml

部署并验证

部署资源清单文件,验证 Pod 是否正常运行:

[root@master231 volumes]# kubectl apply -f 02-deploy-volumes-rbd-secretRef.yaml

通过 curl 命令验证服务是否正常:

[root@master231 volumes]# curl 10.100.0.75

六、Kubernetes 对接 CephFS 文件系统

创建元数据存储池和数据存储池

在 Ceph 集群中创建元数据存储池和数据存储池:

sh-4.4$ ceph osd pool create caofacan-cephfs-metadata
sh-4.4$ ceph osd pool create caofacan-cephfs-data

查看 Ceph 集群现有的文件系统

查看当前 Ceph 集群中已有的文件系统:

sh-4.4$ ceph fs ls

创建 CephFS 实例

创建 CephFS 文件系统实例:

sh-4.4$ ceph fs new caofacan-linux96-cephfs caofacan-cephfs-metadata caofacan-cephfs-data

查看 CephFS 状态信息

再次查看 Ceph 集群中的文件系统:

sh-4.4$ ceph fs ls

创建文件系统

部署 CephFS 文件系统相关资源:

[root@master231 examples]# kubectl apply -f filesystem-ec.yaml

查看 CephFS 的 MDS Pod 状态:

[root@master231 examples]# kubectl get pods -o wide -n rook-ceph -l ceph_daemon_type=mds

测试验证

编写 Kubernetes Deployment 资源清单文件,挂载 CephFS 文件系统:

[root@master231 volumes]# cat 03-deploy-volumes-cephfs-secretRef.yaml

部署并验证

部署资源清单文件,验证 Pod 是否正常运行:

[root@master231 volumes]# kubectl apply -f 03-deploy-volumes-cephfs-secretRef.yaml
[root@master231 volumes]# kubectl get pods -o wide

进入 Pod 修改数据,验证数据一致性:

[root@master231 volumes]# kubectl exec -it xiuxian-volume-cephfs-secretref-b446f8745-7zbtq -- sh
/ # echo "https://www.caofacan.com" > /usr/share/nginx/html/index.html

通过 curl 命令验证数据是否一致:

[root@master231 volumes]# curl 10.100.203.184

七、Kubernetes 的 CSI 对接 Ceph 的 RBD 动态存储类

安装 RBD 的 StorageClass

进入 Rook 提供的 CSI 驱动目录,部署 RBD 的 StorageClass:

[root@master231 rbd]# kubectl apply -f storageclass.yaml

查看创建的 StorageClass:

[root@master231 rbd]# kubectl get sc rook-ceph-block

创建 PVC

创建 PersistentVolumeClaim (PVC),申请存储资源:

[root@master231 rbd]# cat pvc.yaml

部署 PVC:

[root@master231 rbd]# kubectl apply -f pvc.yaml

查看 PVC 状态:

[root@master231 rbd]# kubectl get pv,pvc,sc

验证后端存储块设备

查看后端 Ceph 集群中创建的存储块设备:

sh-4.4$ rbd ls replicapool -l

测试验证

编写 Kubernetes Deployment 资源清单文件,使用 PVC:

[root@master231 volumes]# cat 04-deploy-pvc.yaml

部署资源清单文件,验证 Pod 是否正常运行:

[root@master231 volumes]# kubectl apply -f 04-deploy-pvc.yaml
[root@master231 volumes]# kubectl get pods -o wide

八、Kubernetes 的 CSI 对接 Ceph 的 CephFS 动态存储类

创建 CephFS 的 StorageClass

进入 CephFS 的 CSI 驱动目录,部署 CephFS 的 StorageClass:

[root@master231 cephfs]# kubectl apply -f storageclass-ec.yaml

查看创建的 StorageClass:

[root@master231 cephfs]# kubectl get sc

创建 PVC

创建 PersistentVolumeClaim (PVC),申请存储资源:

[root@master231 cephfs]# cat 04-pvc-cephfs.yaml

部署 PVC:

[root@master231 cephfs]# kubectl apply -f 04-pvc-cephfs.yaml

查看 PVC 状态:

[root@master231 cephfs]# kubectl get pvc

使用 PVC

编写 Kubernetes Deployment 资源清单文件,使用 PVC:

[root@master231 cephfs]# cat 05-deploy-pvc-sc-cephfs.yaml

部署资源清单文件,验证 Pod 是否正常运行:

[root@master231 cephfs]# kubectl apply -f 05-deploy-pvc-sc-cephfs.yaml
[root@master231 cephfs]# kubectl get po

写入数据测试

进入 Pod 写入数据,验证数据持久化:

[root@master231 cephfs]# kubectl exec -it deploy-xiuxian-cephfs-sc-5f9775c869-dm5cr -- sh
/ # echo 11111111111111111111 >/usr/share/nginx/html/index.html

通过 curl 命令验证数据是否一致:

[root@master231 cephfs]# curl 10.100.140.83

删除 Pod 验证数据持久化

删除所有 Pod,验证数据是否持久化:

[root@master231 cephfs]# kubectl delete pod --all

查看新创建的 Pod,验证数据是否一致:

[root@master231 cephfs]# kubectl get po -o wide
[root@master231 cephfs]# curl 10.100.140.102

验证远端 Rook 部署的 Ceph 集群数据

查看 PVC 对应的后端存储 VolumeHandle:

[root@master231 cephfs]# kubectl get pvc
[root@master231 cephfs]# kubectl describe pv pvc-b990e20e-a140-45bd-bdd5-2944e5c23d4e | grep VolumeHandle

获取必要的信息,包括 Ceph 的 Monitor 地址和 admin 用户的密钥:

[root@master231 cephfs]# kubectl get svc -n rook-ceph
[root@master231 cephfs]# kubectl -n rook-ceph exec rook-ceph-tools-5846d4dc6c-cxbxb -- ceph auth print-key client.admin;echo

挂载 CephFS 文件系统,验证数据:

参考链接:
    https://docs.ceph.com/en/latest/man/8/mount.ceph/#options
    
ceph类型存储使用mount挂载是可以-o指定文件系统的

这里就可以在其他节点使用mount -t ceph 挂载ceph存储-o指定文件系统,文件系统可以在dashboard查看。

[root@worker233 rook]# mount -t ceph 10.200.216.242:6789:/ /mnt -o name=admin,secret=AQBJTAdoeHg0ChAA1fqz6Vp46B2rx3AgwWOorw==,fs=myfs-ec

查看挂载数据:

[root@worker233 rook]# df -h | grep mnt
[root@worker233 rook]# ll /mnt/
[root@worker233 rook]# cat /mnt/volumes/csi/csi-vol-430c6743-2605-4c40-9b33-f89046b71875/c38d1b7a-8eb0-4cf0-b642-72259a31231a/index.html

九、注意事项和常见报错

注意事项

  1. 版本兼容性:在部署之前,务必确保 Kubernetes 和 Rook 的版本兼容。例如,Kubernetes v1.23.17 最高支持 Rook v1.13。

  2. 硬件要求:每个节点至少需要一个未分区且未格式化的磁盘用于存储 Ceph 数据。

  3. 网络配置:确保所有节点之间的网络通信正常,尤其是 Ceph 集群内部通信所需的端口。

  4. 存储配置:在配置存储池时,根据实际需求选择合适的副本数量或纠删码策略。

  5. 安全性:在生产环境中,建议使用安全的方式管理密钥和证书,避免直接暴露在配置文件中。

常见报错及解决方法

  1. Pod 状态异常:如果 Pod 处于 CrashLoopBackOffPending 状态,可能是由于资源不足、镜像拉取失败或配置错误。可以通过 kubectl describe pod <pod-name> -n rook-ceph 查看详细日志信息。

  2. 存储池创建失败:如果在创建存储池时遇到问题,可能是由于磁盘空间不足或权限问题。检查磁盘使用情况和目录权限。

  3. Dashboard 无法访问:可能是由于服务未正确暴露或密钥错误。检查 Dashboard 的服务配置和密钥设置。

  4. 存储卷挂载失败:在挂载存储卷时遇到问题,可能是由于卷格式不匹配或权限不足。确保卷格式正确,并检查挂载目录的权限。

  5. CSI 驱动问题:在使用 CSI 驱动时,如果遇到存储卷动态 Provision 失败,可能是由于 StorageClass 配置错误或 CSI 插件版本不兼容。检查 StorageClass 配置和 CSI 插件日志。

十、结语

通过本文的详细步骤,我们成功部署了 Rook 并创建了 Ceph 集群,同时实现了 Kubernetes 与 Ceph 的多种存储对接方式。Rook 的强大之处在于它能够将复杂的 Ceph 存储系统简化为 Kubernetes 原生的资源管理,使得存储的部署和管理变得更加高效和便捷。

在实际应用中,我们可以根据业务需求灵活选择不同的存储类型和配置策略,无论是高性能的块存储、共享的文件系统还是可扩展的对象存储,Rook 都能提供可靠的解决方案。希望本文能够帮助大家更好地理解和掌握 Rook 在 Kubernetes 中的应用,为构建高效、稳定的云原生存储架构奠定基础。

http://www.dtcms.com/wzjs/542391.html

相关文章:

  • 卷帘门怎么做网站购物网站常用的多组图左右轮播的js图片特效代码
  • dede微电影网站模板下载深泽网站制作
  • 烟台哪里做网站电子商务搭建平台
  • 个人网站导航html源码广州公关公司
  • 北京住房与建设部网站网站站做地图软件
  • 国外photoshop教程网站学校网站网页建设开题报告书
  • 有哪些网站可以做视频短视频营销的特点
  • 网站建设公司格wordpress iis支持
  • 企业网站建设珠海网站建设的现状和趋势
  • 定制网站开发平台简易动漫网站模板
  • 大连做网站的企业网站项目策划书实例
  • 农林牧渔行业网站建设html5做的网站
  • 长沙网站设计报价中国建筑企业排名
  • 增城网站怎么做seo深建市住房和城乡建设局网站
  • 能自己做生物实验的网站公司网站建设工作
  • 住房和城乡建设部注册中心网站网站开发汇报
  • 网站开发的在线支付功能西地那非最佳起效时间
  • 建设一个蛋糕网站的背景与目的装修之家网
  • 网站空间数据库上传天眼在线查企业查询
  • 电商类网站设计模板佛山微网站推广
  • 外贸网站推广运营网站 seo 优化建议
  • 网站开发流程包括哪几个步骤?南宁网站建设推广优化
  • 天津电商网站制作asp网站版权
  • 群晖nas怎样做网站wordpress关于本站
  • pv3d 优秀网站多语言网站seo
  • 网站排名优化需要多久wordpress删除前缀
  • 网站营销案例展示小手工
  • 网站建设网络营销文章网站seo谷歌
  • 网站建设公司网址大全建筑方案设计收费标准
  • 上海网站设计公司网领导高度重视网站建设