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

参考: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无法建立。

 ----------------------------------------------------------------------------------------------------

在最近测试中发现上述部署完全按照链接的文档设置有些问题,3个server节点不停的选举leader导致数据无法同步,没法使用,根据这种情况我又做了一下修改。

1、删除configmap(consul-config)资源

2、修改consul.yaml文件

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: consul
  namespace: cephfs
  labels:
    app: consul
    component: server
spec:
  serviceName: consul
  replicas: 3
  selector:
    matchLabels:
      app: consul
      component: server
  template:
    metadata:
      labels:
        app: consul
        component: server
    spec:
      volumes:
      - name: host-time
        hostPath:
          path: /etc/localtime
      containers:
      - name: consul
        image: consul:1.10.4
        imagePullPolicy: IfNotPresent
        args:
          - "agent"
          - "-server"
          - "-bootstrap-expect=3"
          - "-bind=$(PODIP)"    //这里我没有用-advertise 
//参考:advertise_addr: 更改我们向群集中其他节点通告的地址。默认情况下,会使用-bind参数指定的地址.
          - "-client=0.0.0.0"
          - "-datacenter=shellyun"
          - "-data-dir=/consul/data"
          - "-domain=cluster.local"
          - "-disable-host-node-id"
          - "-retry-join=consul-0.consul.$(NAMESPACE).svc.cluster.local"
          - "-retry-join=consul-1.consul.$(NAMESPACE).svc.cluster.local"
          - "-retry-join=consul-2.consul.$(NAMESPACE).svc.cluster.local"
          - "-ui"
        volumeMounts:
          - name: consul
            mountPath: /consul/data
          - name: host-time
            mountPath: /etc/localtime
        env:
          - name: PODIP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
          - name: NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
        ports:
          - containerPort: 8500
            name: http
          - containerPort: 8300
            name: server
          - containerPort: 8301
            name: serflan
          - containerPort: 8302
            name: serfwan
          - containerPort: 8400
            name: cli-port
          - containerPort: 8600
            name: consuldns
  volumeClaimTemplates:
  - metadata:
      name: consul
      namespace: cephfs
      annotations:
        volume.beta.kubernetes.io/storage-class: "cephfs"
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值