zkServer.sh文件
因为在marathon里面启动docker镜像的时候,一般会打出一个在前端的进程,日志直接输出到console,为了把日志保存在硬盘上,所以我们需要在zkServer.sh这个启动文件里面,把start-foreground里面的启动做下修改,就是把输出放到某个文件.
每次启动拉出镜像
打出一个虚拟地址
环境变量
主要有两个,一个是 ZOO_LOG_DIR用于存放日志的地方
另一个是日志轮转的设置,我还没搞明白,也还没有测试看到效果
健康检查
目前是关闭状态,而且发现,如果一旦设置之后,就没有办法去掉了哦。
那怎么办呢? 直接destroy掉,然后重新生成。
存储卷
根据目前的经验,主要有两个目录
/appdata , /dcos/volume1/zk1/data , rw
/applog, /dcos/volume2/zk1/log, rw
最牛逼 - 手动docker名字更新
docker启动后,会调用如下脚本:
#!/bin/bash
IP=`ifconfig eth0 | grep inet | awk '{print $2}' | head -n 1 | awk -F\: '{print $2}'`
ID=`cat /appdata/myid`
hostname="zk$ID"
hostip="$IP"
#sed -i "/ zk$ID/d" /etc/hosts
#echo "$IP zk$ID" >> /etc/hosts
#curl -X POST "http://jenkins.ops.ac.cn/job/ddns/build" --data token=bb0ca9ce17905ac781d72fbe2eb6def7 --data-urlencode json=\'{"parameter": [{"name":"hostname","value":"$hostname"}, {"name":"hostip","value":"$hostip"}]}\'
curl -u ops:yourmima -FSubmit=Build "http://jenkins.ops.ac.cn/job/ddns/buildWithParameters?hostname=$hostname&hostip=$hostip"
jenkins job
echo "hostname: $hostname"
echo "hostip: $hostip"
targetfile="/data/dnsmasq/hosts2"
sed -i "/ $hostname/d" $targetfile
echo "$hostip $hostname" >> $targetfile
# 重启dnsmasq
sudo service dnsmasq reload
这样,就有了一个简单的name,value服务喽