K8S实践Ⅺ (Rook)
发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,一、Rook部署Rook是一个开源的cloud-native storage orchestrator,为各种存储解决方案提供平台、框架和支持,以便与云原生环境本地集成。Rook通过自动化部署、引导、
千家信息网最后更新 2025年02月11日K8S实践Ⅺ (Rook)
一、Rook部署
- Rook是一个开源的cloud-native storage orchestrator,为各种存储解决方案提供平台、框架和支持,以便与云原生环境本地集成。Rook通过自动化部署、引导、配置、置备、扩展、升级、迁移、灾难恢复、监控和资源管理来实现此目的。Rook使用底层云本机容器管理、调度和编排平台提供的工具来实现它自身的功能。
1.使用Helm安装Rook Operator
Ceph Operator Helm Chart
# helm repo add rook-release https://charts.rook.io/release# helm install --namespace rook-ceph rook-release/rook-ceph --name rook-ceph
2.在k8s集群中三个Node节点上新增一块磁盘sdb
[root@k8s-node01 ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk sdb 8:16 0 50G 0 disk
3.创建Rook Cluster
# git clone https://github.com/rook/rook.git# cd rook/cluster/examples/kubernetes/ceph/# kubectl apply -f cluster.yaml
如果要删除已创建的Ceph集群,需要删除/var/lib/rook/目录下的文件
4.部署Ceph dashboard
在cluster.yaml文件中默认已经启用了ceph dashboard,但是默认服务类型为 ClusterIP 类型,只能集群内部访问,如果外部访问的话,就需要使用 NodePort 服务暴漏方式。
# kubectl get svc -n rook-ceph |grep mgr-dashboardrook-ceph-mgr-dashboard ClusterIP 10.106.163.135 8443/TCP 6h4m
# kubectl apply -f dashboard-external-https.yaml
# kubectl get svc -n rook-ceph |grep mgr-dashboardrook-ceph-mgr-dashboard ClusterIP 10.106.163.135 8443/TCP 6h4mrook-ceph-mgr-dashboard-external-https NodePort 10.98.230.103 8443:31656/TCP 23h
5.登录Ceph dashboard
# kubectl cluster-info |grep masterKubernetes master is running at https://20.0.20.200:6443
获取登录密码
# kubectl get pod -n rook-ceph | grep mgrrook-ceph-mgr-a-6b9cf7f6f6-fdhz5 1/1 Running 0 6h21m# kubectl -n rook-ceph logs rook-ceph-mgr-a-6b9cf7f6f6-fdhz5 | grep passworddebug 2019-09-20 01:09:34.166 7f51ba8d2700 0 log_channel(audit) log [DBG] : from='client.24290 -' entity='client.admin' cmd=[{"username": "admin", "prefix": "dashboard set-login-credentials", "password": "5PGcUfGey2", "target": ["mgr", ""], "format": "json"}]: dispatch
6.部署Ceph toolbox
默认启动的Ceph集群,是开启Ceph认证的,这样你登陆Ceph组件所在的Pod里,是没法去获取集群状态,以及执行CLI命令,这时需要部署Ceph toolbox
# kubectl apply -f toolbox.yaml deployment.apps/rook-ceph-tools created# kubectl -n rook-ceph get pods -o wide | grep ceph-toolsrook-ceph-tools-7cf4cc7568-m6wbb 1/1 Running 0 84s 20.0.20.206 k8s-node03
# kubectl -n rook-ceph exec -it rook-ceph-tools-7cf4cc7568-m6wbb bash[root@k8s-node03 /]# ceph status cluster: id: aa31c434-13cd-4858-9535-3eb6fa1a441c health: HEALTH_OK services: mon: 3 daemons, quorum a,b,c (age 6h) mgr: a(active, since 6h) osd: 3 osds: 3 up (since 6h), 3 in (since 6h) data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 3.0 GiB used, 144 GiB / 147 GiB avail pgs: [root@k8s-node03 /]# ceph dfRAW STORAGE: CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 147 GiB 144 GiB 4.7 MiB 3.0 GiB 2.04 TOTAL 147 GiB 144 GiB 4.7 MiB 3.0 GiB 2.04 POOLS: POOL ID STORED OBJECTS USED %USED MAX AVAIL
7.创建Pool和StorageClass
# kubectl apply -f flex/storageclass.yaml cephblockpool.ceph.rook.io/replicapool createdstorageclass.storage.k8s.io/rook-ceph-block created
# kubectl get storageclassNAME PROVISIONER AGErook-ceph-block ceph.rook.io/block 50s
8.创建一个PVC
# cat cephfs-pvc.yamlapiVersion: v1kind: PersistentVolumeClaimmetadata: name: cephfs-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: rook-ceph-block# kubectl apply -f cephfs-pvc.yaml persistentvolumeclaim/cephfs-pvc created
# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEcephfs-pvc Bound pvc-cc158fa0-30f9-420b-96c8-b03b474eb9f7 10Gi RWO rook-ceph-block 4s
集群
平台
文件
类型
服务
登录
管理
三个
功能
命令
容器
密码
工具
底层
所在
方式
方案
框架
灾难
状态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机软件网络安全
高校网络安全解决方案
大学生网络安全论文500
电脑服务器有什么优势
幽灵行动找到主数据库服务器
培训机构数据库设计
美国小学生网络安全教育
软件开发是不是软件工程
数据库的数据模型可分为三种模型
服务器立面设计
计算机网络技术实习日志pdf
计算机教育网络技术
小寨附近java软件开发培训班
坪山区光纤网络技术开发商家
随州放心的软件开发团队
网络安全技术 学习
游戏打开后无法联系服务器
sql数据库删除所有数据
荆门市金键盘网络技术
迈瑞血液分析仪数据库
疯狂网络安全绘画
为什么要开展国家网络安全教育
2021下载软件开发
齐鲁软件开发大赛
泰安合跃网络技术
虚拟主机与虚拟服务器
东营管理erp软件开发
江西网络技术转让案例
交通银行软件开发自荐信
荆门市金键盘网络技术