k8s安装zk集群

安装准备

     1.下载zookeeper operator  

     2.k8s集成任何服务的operator一定要先检查operator的版本是否适配当前的k8s集群版本

     3.不是每个operator都能适配自己的k8s集群,要根据自身情况下载合适的zookeeper-operator

         https://github.com/pravega/zookeeper-operator

        

      4.创建资源

            

          5.创建临时存储的zk集群

apiVersion: "zookeeper.pravega.io/v1beta1"
kind: "ZookeeperCluster"
metadata:
  name: "example"
spec:
  replicas: 3        
  storageType: ephemeral
zk.yaml

            

           6.创建持久化存储的zk集群

              1.先要创建对应的pv,否则pod无法被调度

                  

                 

             2. 通过kubectl describe pvc data-zookeeper-0来查看pvc的属性信息,根据pvc的名称来创建pv并且通过pvc名称进行绑定

                 1.pvc名称

                 2.pvc名称空间

                 3.pvc存储大小

                 

        3.在k8s的相关node上必须先创建/data/k8s/localpv1 本地存储目录

apiVersion: "zookeeper.pravega.io/v1beta1"
kind: "ZookeeperCluster"
metadata:
  name: "zookeeper"
spec:
  replicas: 3
                
zk.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-local1
  labels:
    pv: pv-local1
spec:
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-zookeeper-0
    namespace: default
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /data/k8s/localpv1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-ck2
pv0.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-local2
  labels:
    pv: pv-local2
spec:
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-zookeeper-1
    namespace: default
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /data/k8s/localpv1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-hdfs1
pv1.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-local3
  labels:
    pv: pv-local3
spec:
  capacity:
    storage: 20Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-zookeeper-2
    namespace: default
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /data/k8s/localpv1
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-kafka1
pv3.yaml

             

            

           7.外部服务连接zk集群

             

             

             

         8.修改service的访问方式

           

           

pv和pvc的绑定方式

         第一种,在PV中添加label,在PVC中添加matchLabels进行关联

         

      第二种,PV配置中指定关联的PVC

        

      第三种,PVC中设置volumeName

      

posted @ 2022-08-04 16:19  不懂123  阅读(490)  评论(0)    收藏  举报