K8S-ELK日志系统 之二:zookeeper集群

接:https://www.cnblogs.com/cnblo/p/15673102.html

此处zookeeper只要为kafaka提供服务发现功能

zookeeper:apache-zookeeper-3.6.3-bin

1、NFS服务器上创建可供zookeeper使用的共享存储

mkdir /datazookeeper

echo "/data/zookeeper *(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports

exportfs -arv 

NFS地址:10.0.8.131:/data/zookeeper

2、修改nfs-provisoner.yaml增加上面创建的NFS共享目录

增加一个container和volume

账号和权限即绑定 在https://www.cnblogs.com/cnblo/p/15673102.htm中已做

 1 kind: Deployment
 2 apiVersion: apps/v1
 3 metadata:
 4   name: nfs-client-provisioner
 5   namespace: es
 6   labels:
 7     app: nfs-client-provisioner
 8 spec:
 9   replicas: 1
10   strategy:
11     type: Recreate
12   selector:
13     matchLabels:
14       app: nfs-client-provisioner
15   template:
16     metadata:
17       labels:
18         app: nfs-client-provisioner
19     spec:
20       serviceAccount: nfs-provisioner
21       containers:
22         - name: nfs-client-provisioner
23           #          image: quay.io/external_storage/nfs-client-provisioner:latest
24           image: easzlab/nfs-subdir-external-provisioner:v4.0.1
25           volumeMounts:
26             - name: nfs-client-root
27               mountPath: /persistentvolumes
28           env:
29             - name: PROVISIONER_NAME
30               value: nfs-provisioner
31             - name: NFS_SERVER
32               value: 10.0.8.131
33             - name: NFS_PATH
34               value: /data/elasticsearch
35         - name: nfs-zookeeper-provisioner
36           image: easzlab/nfs-subdir-external-provisioner:v4.0.1
37           volumeMounts:
38             - name: nfs-zookeeper-root
39               mountPath: /persistentvolumes
40           env:
41             - name: PROVISIONER_NAME
42               value: nfs-zookeeper-provisioner
43             - name: NFS_SERVER
44               value: 10.0.8.131
45             - name: NFS_PATH
46               value: /data/zookeeper
47       volumes:
48         - name: nfs-client-root
49           nfs:
50             server: 10.0.8.131
51             path: /data/elasticsearch
52         - name: nfs-zookeeper-root
53           nfs:
54             server: 10.0.8.131
55             path: /data/zookeeper
nfs-provisioner.yaml

3、创建storageclass

1 apiVersion: storage.k8s.io/v1
2 kind: StorageClass
3 metadata:
4   name: nfs-zookeeper-storage
5 provisioner: nfs-zookeeper-provisioner
6 parameters:
7   archiveOnDelete: "true"  
storageclass.yaml

4、Dockerfile

使用openjdk8

 1 FROM harbor.myland.com/baseimages/openjdk:8
 2 ENV ZK_VERSION=3.6.3
 3 ADD apache-zookeeper-3.6.3-bin.tar.gz /
 4 COPY entrypoint.sh /
 5 COPY sources.list /etc/apt/
 6 COPY  zoo.cfg /apache-zookeeper-3.6.3-bin/conf/
 7 RUN chmod 777 /tmp && \
 8     chmod +x entrypoint.sh && \
 9     apt-get update -y &&  \
10     apt-get install vim inetutils-ping net-tools -y && \
11     mkdir -p /data/zookeeper
12     
13 ENV PATH="/apache-zookeeper-3.6.3-bin/bin:${PATH}" \
14     ZOO_LOG_DIR="/data/zookeeper/log" \
15     ZOO_LOG4J_PROP="INFO, CONSOLE, ROLLINGFILE"  \
16     JMXPORT="9010"
17 
18 ENTRYPOINT ["/entrypoint.sh"]
19 CMD ["zkServer.sh","start-foreground"]
20 EXPOSE 2181 2888 3888 9010
Dockerfile
 1 #!/bin/bash 
 2 ID=`hostname |awk -F'-'  '{print $2+1}'`
 3 echo $ID > /data/zookeeper/myid 
 4 if [ "${SERVERS}"x != "x" ];then
 5    printf "\n" >> /apache-zookeeper-3.6.3-bin/conf/zoo.cfg
 6    IFS=\,, read -a servers <<<"$SERVERS"
 7    for i in ${!servers[@]};do
 8        printf "\nserver.%i=%s:2888:3888\n" "$(($i+1))" "${servers[$i]}" >> /apache-zookeeper-3.6.3-bin/conf/zoo.cfg
 9    done
10 fi
11 cd /data/zookeeper
12 exec "$@"
entrypoint.sh
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
quorumListenOnAllIPs=true
zoo.cfg

docker build -t harbor.myland.com/baseimages/zookeeper:3.6.3-jdk8-stateful-20211217 .

docker push harbor.myland.com/baseimages/zookeeper:3.6.3-jdk8-stateful-20211217  

 5、验证

  

 

posted @ 2021-12-18 14:15  西风发财  阅读(106)  评论(0编辑  收藏  举报