K8S章节2 — k8s集群中通过rook方式部署ceph

1、k8s部署

参考:kubernetes简介及单master集群搭建

部署完成后如下:

hostname IPADDR
k8s-master 192.168.1.11
k8s-node01 192.168.1.12
k8s-node02 192.168.1.13
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8s-master   Ready    master   9d    v1.15.0
k8s-node01   Ready    <none>   9d    v1.15.0
k8s-node02   Ready    <none>   9d    v1.15.0

2、rook环境/工具准备(所有node)

2.1 、确保所有时间同步

2.2、安装git

yum install git

2.3、安装lvm2

yum -y install lvm2

2.4、启用rbd模块

# 加载rbd模块
modprobe rbd
# 创建系统启动时自动加载模块脚本
cat > /etc/rc.sysinit << EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules
do
  [ -x \$file ] && \$file
done
EOF
# 创建一个 rbd_modules
cat > /etc/sysconfig/modules/rbd.modules << EOF
modprobe rbd
EOF

chmod 755 /etc/sysconfig/modules/rbd.modules
lsmod |grep rbd

2.5、查看系统版本内核,过低则升级,升级后需重启系统

参考网站:The Community Enterprise Linux Repository

2.6、ceph存储在每个节点要挂载第二块磁盘,在各node上均添加一块磁盘sdb 分区(我用的是VMware ,由于电脑配置问题,只能开三台虚拟机)

# VMware上选定虚拟机——右键——设置——添加——硬盘
# 此时通过lsblk命令查看发现并没有sdb分区
# 扫描 SCSI总线并添加 SCSI 设备
 for host in $(ls /sys/class/scsi_host) ; do echo "- - -" > /sys/class/scsi_host/$host/scan; done
# 重新扫描 SCSI 总线
 for scsi_device in $(ls /sys/class/scsi_device/); do echo 1 > /sys/class/scsi_device/$scsi_device/device/rescan; done
# 重新lsblk查看,发现存在sdb分区
[root@k8s-master ~]# lsblk
NAME                                                                                                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb                                                                                                    8:16   0   50G  0 disk 
sr0                                                                                                   11:0    1  4.5G  0 rom  
sda                                                                                                    8:0    0   30G  0 disk 
├─sda2                                                                                                 8:2    0   29G  0 part 
│ ├─centos-swap                                                                                      253:1    0    2G  0 lvm  
│ └─centos-root                                                                                      253:0    0   27G  0 lvm  /
└─sda1                                                                                                 8:1    0    1G  0 part /boot

以上环境准备完成,建议在虚拟机上生成快照。后续踩坑清楚环境麻烦,而且重新安装会因上次安装后的清除不干净导致各种bug。

3、rook部署ceph集群

3.1、踩坑前序

作为一个小白,安装前先找了网上很多教程,由于国内外网络环境问题,安装起来各种坑。网上大多正常流程是:

 # 安装rook
 git clone https://github.com/rook/rook.git
 cd rook/cluster/examples/kubernetes/ceph/
 # 安装operator准备环境
 kubectl apply -f common.yaml    ##很多教程把这步都省略了,现在省略这步会直接报错没有rook-ceph文件目录
 kubectl apply -f operator.yaml
 # 查看创建状态
 kubectl get pod -n rook-ceph  -o wide
 # 安装cluster.yml,此处需要修改cluster.yaml文件内容
 kubectl apply –f cluster.yml

3.2、ceph正确打开方式

3.2.1、先拉取ceph所需images,并将镜像做tag

# 各个节点均拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/ceph:v1.2.6
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/ceph:v14.2.8
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-node-driver-registrar:v1.2.0
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-provisioner:v1.4.0
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-attacher:v1.2.0
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-snapshotter:v1.2.2
docker pull registry.cn-hangzhou.aliyuncs.com/vinc-auto/cephcsi:v1.2.2
# 需要手动将镜像做tag
docker tag registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-node-driver-registrar:v1.2.0 quay.io/k8scsi/csi-node-driver-registrar:v1.2.0
docker tag registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-provisioner:v1.4.0 quay.io/k8scsi/csi-provisioner:v1.4.0
docker tag registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-attacher:v1.2.0 quay.io/k8scsi/csi-attacher:v1.2.0
docker tag registry.cn-hangzhou.aliyuncs.com/vinc-auto/csi-snapshotter:v1.2.2 quay.io/k8scsi/csi-snapshotter:v1.2.2
docker tag registry.cn-hangzhou.aliyuncs.com/vinc-auto/cephcsi:v1.2.2 quay.io/cephcsi/cephcsi:v1.2.2

3.2.2、修改master节点,ceph使用三节点时,需要开通k8s master节点的容忍,因为master节点默认会有污点,mon 、osd 等pod不会自动部署到这个节点。

# 修改master节点,使其能够创建pod
kubectl get no -o yaml | grep taint -A 5
kubectl taint nodes --all node-role.kubernetes.io/master-

3.2.3、rook-ceph部分参数介绍

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值