Kubernetes集群中部署ZooKeeper集群

2020年9月21日15:15:40 發(fā)表評論 5,174 ℃

Kubernetes集群中部署ZooKeeper集群有兩種方式,一是基于kubernetes的鏡像kubernetes-zookeeper,另外一種是基于原生的鏡像zookeeper,基于kubernetes-zookeeper的部署可以參考kubernetes官網(wǎng)文檔 https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/ ,阿湯博客今天主要介紹下基于原生鏡像的部署,直接查看zookeeper.yml配置文件(未配置數(shù)據(jù)持久化)。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: zoo1
  namespace: zyts
spec:
  selector:
    matchLabels:
      app: zoo1
  serviceName: zoo1-service
  replicas: 1
  template:
    metadata:
      labels:
        app: zoo1
    spec:
      restartPolicy: Always
      containers:
      - name: zoo1
        image: zookeeper:3.4.14
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 2181
        - containerPort: 2888
        - containerPort: 3888
          protocol: TCP
        resources:
          limits:
            cpu: 1000m
          requests:
            cpu: 100m
        env:
        - name: ZOO_MY_ID
          value: "1"
        - name: ZOO_SERVERS
          value: server.1=zoo1-0.zoo1-service.zyts.svc.cluster.local:2888:3888 server.2=zoo2-0.zoo2-service.zyts.svc.cluster.local:2888:3888 server.3=zoo3-0.zoo3-service.zyts.svc.cluster.local:2888:3888
---          
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: zoo2
  namespace: zyts
spec:
  selector:
    matchLabels:
      app: zoo2
  serviceName: zoo2-service
  replicas: 1
  template:
    metadata:
      labels:
        app: zoo2
    spec:
      restartPolicy: Always
      containers:
      - name: zoo2
        image: zookeeper:3.4.14
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 2181
        - containerPort: 2888
        - containerPort: 3888
          protocol: TCP
        resources:
          limits:
            cpu: 1000m
          requests:
            cpu: 100m
        env:
        - name: ZOO_MY_ID
          value: "2"
        - name: ZOO_SERVERS
          value: server.1=zoo1-0.zoo1-service.zyts.svc.cluster.local:2888:3888 server.2=zoo2-0.zoo2-service.zyts.svc.cluster.local:2888:3888 server.3=zoo3-0.zoo3-service.zyts.svc.cluster.local:2888:3888 
---          
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: zoo3
  namespace: zyts
spec:
  selector:
    matchLabels:
      app: zoo3
  serviceName: zoo3-service
  replicas: 1
  template:
    metadata:
      labels:
        app: zoo3
    spec:
      restartPolicy: Always
      containers:
      - name: zoo3
        image: zookeeper:3.4.14
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 2181
        - containerPort: 2888
        - containerPort: 3888
          protocol: TCP
        resources:
          limits:
            cpu: 1000m
          requests:
            cpu: 100m
        env:
        - name: ZOO_MY_ID
          value: "3"
        - name: ZOO_SERVERS
          value: server.1=zoo1-0.zoo1-service.zyts.svc.cluster.local:2888:3888 server.2=zoo2-0.zoo2-service.zyts.svc.cluster.local:2888:3888 server.3=zoo3-0.zoo3-service.zyts.svc.cluster.local:2888:3888
---
apiVersion: v1
kind: Service
metadata:
  name: zoo1-service
  namespace: zyts
spec:
  ports:
  - protocol: TCP
    port: 2181
    targetPort: 2181
    name: client
  - protocol: TCP
    port: 2888
    targetPort: 2888
    name: leader
  - protocol: TCP    
    port: 3888
    targetPort: 3888
    name: leader-election
  selector:
    app: zoo1
---
apiVersion: v1
kind: Service
metadata:
  name: zoo2-service
  namespace: zyts
spec:
  ports:
  - protocol: TCP
    port: 2181
    targetPort: 2181
    name: client
  - protocol: TCP
    port: 2888
    targetPort: 2888
    name: leader
  - protocol: TCP    
    port: 3888
    targetPort: 3888
    name: leader-election
  selector:
    app: zoo2   
---
apiVersion: v1
kind: Service
metadata:
  name: zoo3-service
  namespace: zyts
spec:
  ports:
  - protocol: TCP
    port: 2181
    targetPort: 2181
    name: client
  - protocol: TCP
    port: 2888
    targetPort: 2888
    name: leader
  - protocol: TCP    
    port: 3888
    targetPort: 3888
    name: leader-election
  selector:
    app: zoo3

執(zhí)行

kubectl apply -f zookeeper.yml

查看部署情況:

Kubernetes集群中部署ZooKeeper集群

集群內(nèi)部服務調(diào)用zookeeper地址:zoo1-0.zoo1-service.zyts.svc.cluster.local:2181,zoo2-0.zoo2-service.zyts.svc.cluster.local:2181,zoo3-0.zoo3-service.zyts.svc.cluster.local:2181

登錄任意一個zookeeper pod,測試集群是否可用。

Kubernetes集群中部署ZooKeeper集群

【騰訊云】云服務器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: