赞
踩
准备工作:
下载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
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 .
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。