Rancher搭建zookeeper集群
创建zk工作负载
创建集群的工作负载不能选择Deployment 而要选择Statfulset才行 这样创建的pod名称才是带有编号的 如果是Deployment类型 那么创建出来的pod名称是随机的
创建的pod名称有规律后,我们就可以在zoo.cfg的配置文件中进行主机名称的配置 如果是随机的pod名称,那么pod每次重启后,配置在配置文件中的主机名称就会异常
动态生成zk配置文件
使用sidecar模式来根据pod的顺序来动态生成配置文件内容
1.使用边车模式的initcontainer容器实现
2.在主容器中挂载卷
3.访问主容器中的卷文件
4.动态生成serverid的配置文件
#!/bin/sh ordinal=`env | grep HOSTNAME |cut -d "-" -f2` let serverid=$ordinal+1 echo $serverid > /mnt/myid
zk集群异常处理
报错信息:
Cannot open channel to 3 at election address
UnknownHostException: zk-2.zk-hs.default.svc.cluster.local
解决思路:
配置文件$ ZOOKEEPER_HOME/conf/zoo.cfg,每个机器IP设置为“0.0.0.0”,如下所示:
server.1=0.0.0.0:2888:3888
server.2=zk-1.zk-hs.default.svc.cluster.local:2888:3888
server.3=zk-2.zk-hs.default.svc.cluster.local:2888:3888
修改方法:
修改文件内容:当是本机的时候使用0.0.0.0ip
function print_servers() {
for (( i=1; i<=$SERVERS; i++ ))
do
#echo "server.$i=$NAME-$((i-1)).$DOMAIN:$SERVER_PORT:$ELECTION_PORT"
if [ $ORD -eq $((i-1)) ]; then
echo "server.$i=0.0.0.0:$SERVER_PORT:$ELECTION_PORT"
else
echo "server.$i=$NAME-$((i-1)).$DOMAIN:$SERVER_PORT:$ELECTION_PORT"
fi
done
}
搭建kafka集群
1.动态修改配置文件
serverid=128 sed -i "s/broker.id=108/broker.id=$serverid/g" kafka.properties
#!/bin/sh mkdir -p /kafka/config2/ ordinal=`env | grep HOSTNAME |cut -d "-" -f2` let serverid=$ordinal+1 let containerport=9092+$serverid let listenport=39090+$serverid sed -i "s/broker.id=.*/broker.id=$serverid/g" /kafka/config2/kafka.properties #sed -i "s/listeners=.*/listeners=PLAINTEXT:/\/\0.0.0.0:$containerport/g" /kafka/config2/kafka.properties sed -i "s/advertised.port=.*/advertised.port=$listenport/g" /kafka/config2/kafka.properties sed -i "s#advertised.listeners=.*#advertised.listeners=PLAINTEXT://192.168.30.108:$listenport#g" /kafka/config2/kafka.properties #sed -i "s/advertised.listeners=.*/advertised.listeners=PLAINTEXT://192.168.30.108:$listenport/g" /kafka/config2/kafka.properties
2.设置sidecar容器
主容器设置
最终实现kafka集群搭建
只用到了statfulset有序创建的特性 没有使用到sidecar模型
rancher页面设置
kafka消息通信测试
3.kafka启动连接zk超时导致异常终止进程
kafka集群搭建成功版本
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/14251188.html