kafka集群部署,zookeeper模式与kraft模式,linux传统部署与docker部署步骤示例,bitnami官方kafka的docker镜像在25.8.28日换库需要注意
本次部署分为2次部署示例,第一部分为linux传统kafka-3.9的zookeeper模式,第二部分为docker部署kafka-4.0的kraft模式
#第一部分linux传统kafka-3.9的zookeeper模式
#每个节点上传kafka_2.13-3.9.0.tgz和jdk-17_linux-x64_bin.tar.gz到/opt下,kafka安装包和jdk可在官网下载
cd /opt && tar xvf kafka_2.13-3.9.0.tgz && tar xvf jdk-17_linux-x64_bin.tar.gz
mv kafka_2.13-3.9.0 kafka
vim /etc/profile #追加如下环境变量
export JAVA_HOME=/opt/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
mkdir /opt/kafka/data
vim /opt/kafka/config/server.properties
#配置kafka,每台主机中的 broker.id必须唯一,本次三台主机分别是1,2,3
broker.id=1
listeners=PLAINTEXT://192.168.1.20:9092
# 设置刚刚创建的数据目录
log.dirs=/opt/kafka/data
zookeeper.connect=192.168.1.20:2181,192.168.1.21:2181,192.168.1.22:2181
#三节点依次进行启动
nohup sh /opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties &
#上步zk全部启动后在进行
nohup sh /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties &
#第二部分为docker部署kafka-4.0的kraft模式,broker和controller安装至同一节点,并安装指定docker-27.3.1版本
#需要先在互联网环境服务器下载docker指定版本的安装包,下载后上传至离线环境
#下载地址:https://download.docker.com/linux/static/stable/x86_64/
#上传docker-27.3.1.tgz到/opt下
cd /opt && tar -xvf docker-27.3.1.tgz
#复制所有解压出来的文件进/usr/bin
cp /opt/docker/* /usr/bin/
vim /etc/systemd/system/docker.service
#复制写入下述配置
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
#完成写入配置后给予权限
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
#启动并设置开机自启docker
systemctl enable docker --now
#清除安装文件
rm -rf /opt/docker
#下载docker-compose,下载地址:https://github.com/docker/compose/releases
#下滑选择所需版本,Assets点击下拉菜单,根据系统和cpu架构选择下载,直接下载二进制文件
#linux系统x86架构本次选择下载docker-compose-linux-x86_64
#上传docker-compose-linux-x86_64到/opt下
cd /opt/ && mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#设置docker下拉镜像加速
vim /etc/docker/daemon.json
#写入多条加速配置
{
"registry-mirrors": [
"https://docker.211678.top",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.m.daocloud.io",
"https://do.nark.eu.org",
"https://dockerpull.com",
"https://dockerproxy.cn",
"https://docker.awsl9527.cn"
]
}
#生效配置
systemctl daemon-reload
systemctl restart docker
#先互联网环境服务器保存镜像,然后上传离线环境服务安装
#bitnami官方镜像在25.8.28日换库了,以前是bitnami/kafka,现在是bitnamilegacy/kafka
#以前的镜像库bitnami/kafka也可以用,本来被官方给删了,现在又传回去了,都可以用了
docker pull bitnamilegacy/kafka:4.0.0
docker save bitnamilegacy/kafka:4.0.0 > /opt/kafka_4.0.tar
#上传镜像到离线环境,将kafka_4.0.tar上传到离线环境服务器的/opt下
docker load < /opt/kafka_4.0.tar
mkdir /opt/kafka_4.0
vim /opt/kafka_4.0/docker-compose.yml
#每台节点写入如下compose配置,同一内kafka的id不能重复,本节点id为0,本集群为0,1,2,本集群ip为192.168.1.20
services:
kafka-0:
image: bitnamilegacy/kafka:4.0.0
container_name: kafka-0
ports:
- "9092:9092"
- "9093:9093"
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@192.168.1.20:9093,1@192.168.1.21:9093,2@192.168.1.22:9093
- KAFKA_KRAFT_CLUSTER_ID=abcdefghijklmnopqrstuv
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.20:9092
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=2
volumes:
- /data/kafka:/bitnami/kafka
#注意 - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093这一条配置
#在4.0版本可以写成 PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
#但是亲测在3.9版本就识别不了
#创建compose映射目录并赋予权限
mkdir -p /data/kafka/
chown -R 1001:1001 /data/kafka/
#每台节点配置完成后同时启动
docker-compose -f /opt/kafka_4.0/docker-compose.yml up -d
更多推荐
所有评论(0)