Kafka 外置
配置参数
配置项 | 类型 | 示例 | 描述 |
---|---|---|---|
KafkaAddresses | string | kafka-ha:9092 | kafka地址,如有多个使用逗号隔开 |
KafkaReadAddress | string | kafka-ha:9092 | kafka访问地址 |
zookeeperHost | string | 10.0.0.202 | zookeeper的Host |
zookeeperPort | string | 2181 | zookeeper的Port |
操作步骤
迁移zookeeper数据
备份zookeeper数据
ones-ai-k8s.sh
#进入zk pod
kubectl -n ones exec -it zookeeper-ha-0 bash
cd /bitnami/zookeeper/data/
#压缩数据
tar -cvzf zk.tar.gz version-2/*
exit
exit
#数据移动到pod外
kubectl -n ones cp zookeeper-ha-0:/bitnami/zookeeper/data/zk.tar.gz /tmp/zk.tar.gz
自行将zk.tar.gz文件移动到zookeeper服务器的/tmp目录。
数据复制到新的zookeeper
#删除
#zookeeper数据
#<base_url>替换成zookeeper配置文件(zoo.cfg)中的dataDir
rm -f <base_url>/version-2/*
tar -xvzf /tmp/zk.tar.gz -C <base_url>
#如果zoo.cfg文件中有dataLogDir,需要把刚刚解压出来的文件中log开头的文件 移动到<dataLogDir>/version-2目录下
#mv <dataLogDir>/version-2/log.* <dataLogDir>/version-2
zkServer.sh restart # 如果此前zookeeper未启动则执行 zkServer.sh start
zkCli.sh
ls /
#[admin, brokers, cluster, config, consumers, controller_epoch, feature, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]
#输出上述内容则说明成功
迁移kafka数据
备份Kafka数据
ones-ai-k8s.sh
#进入kafka pod
kubectl -n ones exec -it kafka-ha-0 bash
cd /bitnami/kafka
#压缩数据
tar -cvzf kafka.tar.gz data/*
exit
exit
#数据移动到pod 外
kubectl -n ones cp kafka-ha-0:/bitnami/kafka/kafka.tar.gz /tmp/kafka.tar.gz
自行将kafka.tar.gz移动到kafka的服务器
数据复制到新的kafka中
#<base_url>用kafka配置文件()中的log.dirs替换
rm -rf <base_url>/*
tar -xvzf /tmp/kafka.tar.gz -C <base_url> --strip-components 1
#重启kafka(如果之前就没开,则只需要打开即可)
kafka-server-stop.sh
kafka-server-start.sh
#<host> <port>用实际kafka服务器的host和端口替换
#查看kafka topics
kafka-topics.sh --list --bootstrap-server <host>:<port>
#......
#ones.ones.task.updated
#ones.ones.task.updated-ones.audit_log.delay
#ones.ones.task.updated-ones.automation.delay
#ones.ones.task.updated-ones.gantt.delay
#ones.ones.task.updated-ones.manhour.delay
#ones.ones.task.updated-ones.objectlink.delay
#ones.ones.task.updated-ones.observer.sprint_scale_cache.delay
#ones.ones.task.updated-ones.observer.task_count.delay
#ones.ones.task.updated-ones.project.object_link.audit_log.delay
#ones.ones.task.updated-ones.project.wiki.audit_log.delay
#ones.ones.task.updated-ones.sprint.delay
#ones.ones.task.updated-ones.task.publish_version.delay
#project_binlog
#输出类似上面的数据则说明这一步成功
#创建测试数据
./kafka-topics.sh --create --bootstrap-server <host>:<port> --topic onesTestABC123x --partitions 1 --replication-factor 1
#Created topic onesTestABC123x.
kafka-topics.sh --list --bootstrap-server <host>:<port> | grep onesTestABC123x
#onesTestABC123x
#如果输出如上所示则说明创建成功
#删除测试数据
kafka-topics.sh --bootstrap-server <host>:<port> --delete --topic onesTestABC123x
kafka-topics.sh --list --bootstrap-server <host>:<port> | grep onesTestABC123x
#如果没有输出内容,则说明删除成功
修改配置
进入ones服务器
ones-ai-k8s.sh
vim config/private.yaml
# 修改如下配置(<kafka_address> <kafka_read_address> <zk_host> <zk_port>根据实际情况填写)
KafkaAddresses: <kafka_address>
KafkaReadAddress: <kafka_read_address>
zookeeperHost: <zk_host>
zookeeperPort: <zk_port>
应用配置
make setup-ones
验证
需要等待几分钟后在执行ones-ai-k8s.sh后进入的pod中进行下列操作
kubectl -n ones get pod | grep audit-log-sync-deployment
#audit-log-sync-deployment-58dbfbf5db-jq42t 1/1 Running 0 4m51s
#如果显示Running 则说明切换成功