微服务——安装cephfs+consul集群

本文档记录了在Kubernetes(K8s)环境中使用CephFS作为持久化存储部署Consul集群遇到的问题及解决办法。首先,由于CephFS仅支持ReadWriteMany访问模式,而StatefulSet的存储要求必须为ReadWriteOnce,导致初始部署失败。为解决此问题,作者尝试了删除ConfigMap并修改StatefulSet配置,包括删除advertise_addr参数,以避免不断选举leader导致的数据同步问题。最终的配置中,通过设置适当的参数如-retry-join来确保集群的稳定性和数据一致性。

参考:k8s部署consul集群 | 虫子个人博客

基本内容同参考连接一致,只是在consul.yaml中略微改动。参考文档中存储是挂载的nfs,我这里是用的cephfs,修改内容如下:

volumeClaimTemplates:
  - metadata:
      name: consul
      namespace: cephfs
      annotations:
        volume.beta.kubernetes.io/storage-class: "cephfs"  //这里根据自己部署的storageclass命名实际填写
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 5Gi

 我这里的cephfs是namespace是在cephfs下,具体原因可能和cephfs-provisioner创建的位置有关,我尝试过虽然sc没有namespace(ns)约束,但是在其他namespace下部署pvc是不能动态创建pv的,需要将pvc部署在和cephfs-provisioner同一个ns下才可以运行正常,是不是在其他的ns下在部署一个cephfs-provisioner就可以部署pvc了,还没有尝试,这块没太搞明白。现在用cephfs的业务都在cehpfs的ns下,临时使用。

中间我还尝试存储挂载ceph pvc,发现ceph不支持accessModes:ReadWriteMany,它只支持[ReadWriteOnce],只有cephfs支持[ReadWriteMany],如果将StatefulSet部署存储改为accessModes:ReadWriteOnce,会发现pod无法建立。

 --------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值