openEuler 版本号: 2209
前置条件 k8s集群版本
kubectl version
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.12", GitCommit:"b058e1760c79f46a834ba59bd7a3486ecf28237d", GitTreeState:"clean", BuildDate:"2022-07-13T14:53:39Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
没有被分区的磁盘, 清除各可用盘数据,这一步很重要
wipefs -af /dev/sdb
wipefs -af /dev/sdc
安装证书管理
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.7.1/cert-manager.yaml
modprobe rbd 测试没有报 "not found"即可
开始安装
下载配置
git clone --single-branch --branch v1.10.6 https://github.com/rook/rook.git
cd rook/deploy/examples
kubectl create -f crds.yaml -f common.yaml -f operator.yaml
检查pod
kubectl -n rook-ceph get pod
创建集群
kubectl create -f cluster.yaml
安装工具箱
kubectl create -f deploy/examples/toolbox.yaml
检查状态?
kubectl -n rook-ceph rollout status deploy/rook-ceph-tools
输出:
deployment "rook-ceph-tools" successfully rolled out
使用ceph命令,先进容器
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
样例命令
ceph status
ceph osd status
ceph df
rados df
可以删除工具箱
kubectl -n rook-ceph delete deploy/rook-ceph-tools
遇到下载不了的情况,使用科学上网机器下载导出并导入
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1
docker 拉取镜像
docker pull registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1
docker 导出
docker save -o csi-node-driver-registrar.tar registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.1
docker 导入
docker load --input ./csi-node-driver-registrar.tar
docker pull registry.k8s.io/sig-storage/csi-provisioner:v3.3.0
docker save -o csi-provisioner.tar registry.k8s.io/sig-storage/csi-provisioner:v3.3.0
下载到本地并上传到目标机器
sz csi-provisioner.tar
docker load --input ./csi-provisioner.tar
docker pull registry.k8s.io/sig-storage/csi-resizer:v1.6.0
docker save -o csi-resizer.tar registry.k8s.io/sig-storage/csi-resizer:v1.6.0
sz csi-resizer.tar
docker load --input ./csi-resizer.tar
docker pull registry.k8s.io/sig-storage/csi-snapshotter:v6.1.0
docker save -o csi-snapshotter.tar registry.k8s.io/sig-storage/csi-snapshotter:v6.1.0
下载到本地并上传到目标机器
sz csi-snapshotter.tar
docker load --input ./csi-snapshotter.tar
docker pull registry.k8s.io/sig-storage/csi-attacher:v4.0.0
docker save -o csi-attacher.tar registry.k8s.io/sig-storage/csi-attacher:v4.0.0
下载到本地并上传到目标机器
sz csi-attacher.tar
docker load --input ./csi-attacher.tar
开始使用
首先检查状态, 发现不健康,如何解决?
只有一个osd, 其它节点都有可用磁盘,但是不自动创建osd (如果使用这个命令清空硬盘就不会出问题了,这个命令意思是使用整个盘,有分区的不要执行哦 wipefs -af /dev/sdb)
解决办法: 将各点的磁盘格式化一下
parted -s /dev/sdb mklabel gpt mkpart primary ext4 0% 100%
parted -s /dev/sdc mklabel gpt mkpart primary ext4 0% 100%
处理后,会自动创建osd但是报错了, 启不来
** ERROR: unable to open OSD superblock on /var/lib/ceph/osd/ceph-2: (2) No such file or directory
通过搜索问题发现, 不如直接在主机上部署好管理osd, 这个原因就是没有mount上的原因(如果使用这个命令清空硬盘就不会出问题了,这个命令意思是使用整个盘,有分区的不要执行哦 wipefs -af /dev/sdb)
bash-4.4$ ceph status
cluster:
id: d53f5e3b-08c9-473c-9d3b-bd6127fe2c82
health: HEALTH_WARN
OSD count 1 < osd_pool_default_size 3
services:
mon: 3 daemons, quorum a,b,c (age 2h)
mgr: b(active, since 2h), standbys: a
osd: 1 osds: 1 up (since 2h), 1 in (since 3d)
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 5.2 MiB used, 5.5 TiB / 5.5 TiB avail
pgs:
针对operator.yml修改
ROOK_ENABLE_DISCOVERY_DAEMON: "true"
访问网址, 192.168.0.14 替换成对应主机的ip即可
https://192.168.0.14:32644/#/login?returnUrl=%2Fdashboard
账号是admin
密码通过如下命令查看
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo
看到的密码登陆不进去?怎么办
如下密码 %#/Z\?w}mccco/Ow#S@M
F12查看实际上是登陆成功了,但是没有权限导致的