服务器搭建系列之16:k8s安装zookeeper集群,2022最新版本

准备工作:
下载zookeeper安装包,地址:zookeeper官网
将下方内容保存为文件

vim zoo.cfg

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/home/zookeeper_data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

server.0=zookeeper01:2888:3888
server.1=zookeeper02:2888:3888
server.2=zookeeper03:2888:3888


Dockerfile

FROM registry.cn-qingdao.aliyuncs.com/fandai/fd-jdk8

COPY apache-zookeeper-3.7.0-bin.tar.gz /home/apache-zookeeper-3.7.0-bin.tar.gz
WORKDIR /home/
RUN mkdir zookeeper_data
RUN tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz && rm -rf apache-zookeeper-3.7.0-bin.tar.gz
WORKDIR /home/apache-zookeeper-3.7.0-bin
COPY zoo.cfg /home/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
EXPOSE 2181
EXPOSE 2888
EXPOSE 3888
docker build -t zookeeper:latest .

deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zookeeper01
  namespace: fandai
  labels:
    app: zookeeper01
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zookeeper01
  template:
    metadata:
      labels:
        app: zookeeper01
    spec:
      nodeName: fandai-slave1
      hostname: zookeeper01
      containers:
        - name: zookeeper01
          image: registry.cn-qingdao.aliyuncs.com/fandai/zookeeper
          command: ["/bin/bash","-c","echo 0 > /home/zookeeper_data/myid && sed -i 's/server.0=zookeeper01:2888:3888/server.0=0.0.0.0:2888:3888/g' /home/apache-zookeeper-3.7.0-bin/conf/zoo.cfg && /home/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start && tail -f /dev/null"]
          volumeMounts:
            - name: data
              mountPath: /home/zookeeper_data
      volumes:
        - name: data
          nfs:
            server: fandai-nfs  #nfs服务器地址
            path: /home/nfs/zookeeper01/data #共享文件路径
---
apiVersion: v1  # 资源版本
kind: Service  # 资源类型
metadata: # 元数据
  name: zookeeper01 # 资源名称
  namespace: fandai # 命名空间
spec: # 描述
  selector: # 标签选择器,用于确定当前service代理哪些pod
    app: zookeeper01
  type: NodePort # service类型
  ports: # 端口信息
    - name: zookeeper1
      port: 2181  # service端口
      targetPort: 2181 # pod端口
    - name: zookeeper2
      port: 2888  # service端口
      targetPort: 2888 # pod端口
    - name: zookeeper3
      port: 3888  # service端口
      targetPort: 3888 # pod端口
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zookeeper02
  namespace: fandai
  labels:
    app: zookeeper02
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zookeeper02
  template:
    metadata:
      labels:
        app: zookeeper02
    spec:
      nodeName: fandai-slave2
      hostname: zookeeper02
      containers:
        - name: zookeeper02
          image: registry.cn-qingdao.aliyuncs.com/fandai/zookeeper
          command: ["/bin/bash","-c","echo 1 > /home/zookeeper_data/myid && sed -i 's/server.1=zookeeper02:2888:3888/server.1=0.0.0.0:2888:3888/g' /home/apache-zookeeper-3.7.0-bin/conf/zoo.cfg && /home/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start && tail -f /dev/null"]
          volumeMounts:
            - name: data
              mountPath: /home/zookeeper_data
      volumes:
        - name: data
          nfs:
            server: fandai-nfs  #nfs服务器地址
            path: /home/nfs/zookeeper02/data #共享文件路径
---
apiVersion: v1  # 资源版本
kind: Service  # 资源类型
metadata: # 元数据
  name: zookeeper02 # 资源名称
  namespace: fandai # 命名空间
spec: # 描述
  selector: # 标签选择器,用于确定当前service代理哪些pod
    app: zookeeper02
  type: NodePort # service类型
  ports: # 端口信息
    - name: zookeeper1
      port: 2181  # service端口
      targetPort: 2181 # pod端口
    - name: zookeeper2
      port: 2888  # service端口
      targetPort: 2888 # pod端口
    - name: zookeeper3
      port: 3888  # service端口
      targetPort: 3888 # pod端口
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: zookeeper03
  namespace: fandai
  labels:
    app: zookeeper03
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zookeeper03
  template:
    metadata:
      labels:
        app: zookeeper03
    spec:
      nodeName: fandai-slave3
      hostname: zookeeper03
      containers:
        - name: zookeeper03
          image: registry.cn-qingdao.aliyuncs.com/fandai/zookeeper
          command: ["/bin/bash","-c","echo 2 > /home/zookeeper_data/myid && sed -i 's/server.2=zookeeper03:2888:3888/server.2=0.0.0.0:2888:3888/g' /home/apache-zookeeper-3.7.0-bin/conf/zoo.cfg && /home/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start && tail -f /dev/null"]
          volumeMounts:
            - name: data
              mountPath: /home/zookeeper_data
      volumes:
        - name: data
          nfs:
            server: fandai-nfs  #nfs服务器地址
            path: /home/nfs/zookeeper03/data #共享文件路径
---
apiVersion: v1  # 资源版本
kind: Service  # 资源类型
metadata: # 元数据
  name: zookeeper03 # 资源名称
  namespace: fandai # 命名空间
spec: # 描述
  selector: # 标签选择器,用于确定当前service代理哪些pod
    app: zookeeper03
  type: NodePort # service类型
  ports: # 端口信息
    - name: zookeeper1
      port: 2181  # service端口
      targetPort: 2181 # pod端口
    - name: zookeeper2
      port: 2888  # service端口
      targetPort: 2888 # pod端口
    - name: zookeeper3
      port: 3888  # service端口
      targetPort: 3888 # pod端口
mkdir -p /home/nfs/zookeeper01/data
mkdir -p /home/nfs/zookeeper02/data
mkdir -p /home/nfs/zookeeper03/data
chmod -R 777 /home/nfs
kubectl apply -f deploy.yaml
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赤兮丷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值