kubernetes|kubernetes部署gluster三节点集群问题


部署教程:
kubernetes存储之GlusterFS - SSgeek - 博客园
问题:部署成功后,创建storageclass后,创建pvc一直处于pending状态,然后describe查看pvc

Failed to provision volume with StorageClass "myglusterfs": failed to create volume: failed to create volume: see kube-controller-manager.log for details

kubectl logs 查看了controller-manager,没啥用,还是相同提示
1 event.go:291] "Event occurred" object="default/mypvc" kind="PersistentVolumeClaim" apiVersion="v1" type="Warning" reason="ProvisioningFailed" message="Failed to provision volume with StorageClass \"myglusterfs\": failed to create volume: failed to create volume: see kube-controller-manager.log for details"

然后heketi-cli -s $HEKETI_CLI_SERVER --user admin --secret '123456' topology info,发现pvc一直在不停的创建bricks,不一会儿存储空间就被占满了。无奈之下,重新删除pods: deploy-heketi。然后重新挂载一个没有分区的硬盘,/dev/sdb。可以不用去删除磁盘,使用下面的命令即可重新挂载:
[root@k8s-master01 ~]umount /dev/sdb [root@k8s-master01 ~]#parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel msdos Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes (parted) quit Information: You may need to update /etc/fstab. [root@k8s-master01 ~]#pvcreate /dev/sdb WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdb. Physical volume "/dev/sdb" successfully created.

挂载完成后,重新部署 heketi-deploy 这个pod, 重新加载集群信息:
heketi-cli -s $HEKETI_CLI_SERVER --user admin --secret 'My Secret' topology load --json=topology-sample.json
调整完成。
解决问题:
【kubernetes|kubernetes部署gluster三节点集群问题】glusterfs集群部署好了,如果继续创建pvc,估计又和之前一样。于是我全网找解决问题,看到论坛有个帖子和我的问题一样,但是最终楼主简单的回复了: 他的问题是有一个节点的机器忘记做一些初始化步骤。论坛链接:kubesphere3.1.1+glusterfs部署失败,PVC始终处于pending状态 - KubeSphere 开发者社区
突然反应过来我的机器之前出现过时间未同步网络时间的问题,我进行了三个步骤:
1、每个节点配置时间同步:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime service ntpd stop ntpdate cn.pool.ntp.org crontab -e * */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org service crond restart

2、所有节点安装glusterfs客户端
yum install -y glusterfs glusterfs-fuse -y

3、加载模块
modprobe dm_snapshot modprobe dm_mirror modprobe dm_thin_pool lsmod | grep dm_snapshot lsmod | grep dm_mirror lsmod | grep dm_thin_pool

最后,重新创建pvc,发现创建成功了,问题目前不清楚,应该是前期准备工作没做好,还是要老老实实按照步骤来,切勿偷懒。

    推荐阅读