最新版本 release版本 ceph分布式存储搭建(rook-1.8.6)
rook+cephceph简介:Rook 是 Kubernetes 的开源云原生存储编排器,为各种存储解决方案提供平台、框架和支持,以与云原生环境进行原生集成。Rook将存储软件转变为自我管理、自我扩展和自我修复的存储服务。它通过自动化部署、引导、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现这一点。Rook 使用底层云原生容器管理、调度和编排平台提供的设施来履行其职责。Rook 利
rook+ceph
ceph简介:
Rook 是 Kubernetes 的开源云原生存储编排器,为各种存储解决方案提供平台、框架和支持,以与云原生环境进行原生集成。
Rook
将存储软件转变为自我管理、自我扩展和自我修复的存储服务。它通过自动化部署、引导、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现这一点。
Rook 使用底层云原生容器管理、调度和编排平台提供的设施来履行其职责。Rook 利用扩展点深度集成到云原生环境中,并为调度、生命周期管理、资源管理、安全、监控和用户体验提供无缝体验。
github地址
社区官网地址
ps:
rook称云原生编排器,ceph为分布式存储(rook为方法,ceph为功能)
ceph本身支持多种搭建方式
cephadm 搭建ceph集群方式
部署
环境准备:
最少三台机器,且已经是kuberneres集群,
角色 | ip |
---|---|
master1 | 192.168.21.10 |
node1 | 192.168.21.11 |
node2 | 192.168.21.12 |
k8s搭建方式参照
回归主题:
首先把download下来的代码或二进制包解压并到指定目录
history记录:
- 部署 Rook 的第一步是创建 CRD 和其他公共资源
kubectl create -f crds.yaml -f common.yaml
- 创建公共资源后,下一步是创建 Operator 部署
kubectl apply -f operator.yaml
- cluster.yaml:此文件包含生产存储集群的常用设置。至少需要三个工作节点。
kubectl apply -f cluster.yaml
这里cluster的角色是可以基于不同环境做配置的
要注意下,osd设备我是直接加磁盘设备,重启读取的,
rook逻辑是能读到你的裸盘的,也可以支持pv挂载,但我看官方其实目前是不建议这样的,大概意思就是后面可能会出各种各样的问题,不好解,所以不建议!
4 验证部署的集群
kubectl get po -n rook-ceph
图中的myfs的两个pod是后面创建的,是mds
5.部署存储类 这里也可以先跳过部署文件系统
kubectl create -f filesystem.yaml
可以观察下新创建包含得myfs的两个pod
6.创建dashborad
kubectl apply -f dashboard-external-https.yaml
1.8.6的这个版本mgr的原本的svc设置就8443端口,老版本是7001,
所以现在之前起这个yaml,看到关联到就可以了
访问ip+端口 参照
ps:注意访问时要加https,默认dashboard是经过443认证的
账号:admin
密码通过以下命令获取
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo
7.部署工具箱
kubectl create -f deploy/examples/toolbox.yaml
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
在pod中查看集群状态
ceph status
ceph osd status
ceph df
rados df
参照
8.demo测试
kubectl apply -f storageclass.yaml
kubectl apply -f pvc.yaml
kubectl apply -f pod.yaml
pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cephfs-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: rook-cephfs
这里是不需要再手动创建pv的,会自己绑定创建
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: csicephfs-demo-pod
spec:
containers:
- name: web-server
image: nginx
volumeMounts:
- name: mypvc
mountPath: /var/lib/www/html
volumes:
- name: mypvc
persistentVolumeClaim:
claimName: cephfs-pvc
readOnly: false
执行下csi的demo测试,
并验证volume对应挂载,文件是否同步
在pod的pv挂载路径写入文件
pod所在宿主机本地磁盘路径验证ok
基本的环境就是这样,过于原理的东西没有介绍,可以参考下官方文档,
我们这边基本上就该测试 然后生产迁移了,肯定还会遇到问题,基于不同环境之类的 各种因素吧
先这样~
更多推荐
所有评论(0)