[kubernetes] 交付dubbo之zookeeper安装配置

Posted 运维少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[kubernetes] 交付dubbo之zookeeper安装配置相关的知识,希望对你有一定的参考价值。

    做这个实验目标是往kubernetes集群里交付dubbo服务,现在来安装zookeeper集群,拓扑如下图所示:

[kubernetes]


01 配置java环境

    由于zookeeper是java语言开发的,所以安装之前需要先准备java环境,这部分三台主机都需要配置。

1)下载jdk

jdk-8u291-linux-x64.tar.gz

2)创建目录

mkdir /usr/java

3)解压缩

tar xfv jdk-8u291-linux-x64.tar.gz -C /usr/java

4)配置软连接,方便以后作升级

ln -s /usr/java/jdk1.8.0_291/ /usr/java/jdk

5)配置环境变量

vi /etc/profile
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

6)测试

source /etc/profile
[root@host11 ~]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)

[kubernetes]


02 配置zookeeper

 1)下载软件

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

2)解压

tar xfv zookeeper-3.4.14.tar.gz -C /opt/

3)作软连接,方便以后升级

ln -s /opt/zookeeper-3.4.14 /opt/zookeeper

4)配置zoo.cfg

[root@host11 ~]# cat /opt/zookeeper/conf/zoo.cfg 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=zk1.od.com:2888:3888
server.2=zk2.od.com:2888:3888
server.3=zk3.od.com:2888:3888
  • tickTime​:配置单元时间。单元时间是ZooKeeper的时间计算单元,其他的时间间隔都是使用tickTime的倍数来表示的。

  • initLimit​:节点的初始化时间。该参数用于Follower(从节点)的启动,并完成与Leader(主节点)进行数据同步的时间。Follower节点在启动过程中,会与Leader节点建立连接并完成对数据的同步,从而确定自己的起始状态。Leader节点允许Follower节点在initLimit时间内完成这项工作。该参数默认值为10,表示是参数tickTime值的10倍。

  • syncLimit​:心跳最大延迟周期。该参数用于配置Leader节点和Follower节点之间进行心跳检测的最大延时时间。在ZK集群运行的过程中,Leader节点会通过心跳检测来确定Follower节点是否存活。如果Leader节点在syncLimit时间内无法获取到Follower节点的心跳检测响应,那么Leader节点就会认为该Follower节点已经脱离了和自己的同步。该参数默认值为5,表示是参数tickTime值的5倍。

  • dataDir​:是zookeeper持久化数据存放的目录。myid文件处于此目录下。

  • dataLogDir​:日志目录选项,如果没有设置该参数,默认将使用和dataDir相同的设置。

  • clientPort​:zookeeper监听客户端连接的端口,默认是2181。

  • server.x​:集群成员,这里使用域名,所以需要配置dns

5)创建日志和数据目录

mkdir -pv /data/zookeeper/data,logs

6)配置myid ,​注意这里每个主机的配置都不一样

[root@host11 ~]# echo 1 > /data/zookeeper/data/myid
[root@host12 ~]# echo 2 > /data/zookeeper/data/myid
[root@host21 ~]# echo 3 > /data/zookeeper/data/myid

7)在dns服务器配置dns解析

[root@host11 zk]# cat /var/named/od.com.zone 
$ORIGIN od.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.od.com. dnsadmin.od.com. (
2021073105 ; serial
10800 ; refresh
900 ; retry
604800 ; expire
86400 ) ; minimum
NS dns.od.com.
$TTL 60 ; 1 minute
dns A 192.168.122.11
harbor A 192.168.122.200
k8s-yaml A 192.168.122.200
traefik A 192.168.122.10
dashboard A 192.168.122.10
jenkins A 192.168.122.10
zk1 A 192.168.122.10
zk2 A 192.168.122.11
zk3 A 192.168.122.21

8)启动主机上的zookeeper

/opt/zookeeper/bin/zkServer.sh start

[kubernetes]

9)查看zookeeper状态(一主两从)

/opt/zookeeper/bin/zkServer.sh status  # follower代表从节点,leader代表主节点

[kubernetes][kubernetes][kubernetes]

10)链接到zookeeper,查看目录,返回zookeeper即为成功

/opt/zookeeper/bin/zkCli.sh -server localhost:2181
[zk: localhost:2181(CONNECTED) 4] ls /
[zookeeper]


tips:如果查看zkServer.sh 返回

Error contacting service. It is probably not running

,则检查/data/zookeeper/data/zookeeper.out查看详细的报错内容,如果需要再次启动zookeeper,先删除/data/zookeeper/data/zookeeper_server.pid。


03 使用supervisor管理zk

    supervisor可以类似于systemctl一样帮我们管理zk服务,并且在zk异常退出时帮我们拉起zk进程。

1)安装supervisor

yum install -y supervisor
systemctl enable supervisord
systemctl start supervisord

2)配置supervisor脚本 -- 以host21为例

[root@host21 supervisord.d]# cat /etc/supervisord.d/zk-server.ini 
[program:zk-server-host21]
command=/opt/zookeeper/bin/zkServer.sh start-foreground
;priority=999
autostart=true
autorestart=true
;startsecs=10
;startretries=3
;exitcodes=0,2
;stopsignal=QUIT
;stopwaitsecs=10
user=root
log_stdout=true
log_stderr=true
stdout_logfile=/data/zookeeper/logs/supervisord_zookeeper.log
redirect_stderr=true
;logfile_maxbytes=10MB
environment=JAVA_HOME=/usr/java/jdk

3)停止zk

/opt/zookeeper/bin/zkServer.sh stop

4)使用supervisord更新zk服务

supervisord update

5)查看zk服务状态

supervisord status zk-server-host21

6)停止zk

supervisord stop zk-server-host21

7)启用zk

supervisord start zk-server-host21


以上是关于[kubernetes] 交付dubbo之zookeeper安装配置的主要内容,如果未能解决你的问题,请参考以下文章

[kubernetes] 交付dubbo之zookeeper安装配置

[kubernetes] 交付dubbo之jenkins联动docker

[kubernetes] 交付dubbo之在jenkins配置多jre版本的maven

13.实战交付一套dubbo微服务到k8s集群之交付dubbo服务的消费者集群到K8S

9.实战交付一套dubbo微服务到k8s集群之Jenkins部署

实战交付一套dubbo微服务到k8s集群之使用Jenkins进行持续构建交付dubo服务的提供者