天天看点

zk + marathon 完美结合zkServer.sh文件

zkServer.sh文件

zk + marathon 完美结合zkServer.sh文件

因为在marathon里面启动docker镜像的时候,一般会打出一个在前端的进程,日志直接输出到console,为了把日志保存在硬盘上,所以我们需要在zkServer.sh这个启动文件里面,把start-foreground里面的启动做下修改,就是把输出放到某个文件.

每次启动拉出镜像

zk + marathon 完美结合zkServer.sh文件

打出一个虚拟地址

zk + marathon 完美结合zkServer.sh文件

环境变量

zk + marathon 完美结合zkServer.sh文件

主要有两个,一个是 ZOO_LOG_DIR用于存放日志的地方

另一个是日志轮转的设置,我还没搞明白,也还没有测试看到效果

健康检查

zk + marathon 完美结合zkServer.sh文件

目前是关闭状态,而且发现,如果一旦设置之后,就没有办法去掉了哦。

那怎么办呢? 直接destroy掉,然后重新生成。

存储卷

zk + marathon 完美结合zkServer.sh文件

根据目前的经验,主要有两个目录

/appdata , /dcos/volume1/zk1/data , rw

/applog, /dcos/volume2/zk1/log, rw

最牛逼 - 手动docker名字更新

zk + marathon 完美结合zkServer.sh文件
zk + marathon 完美结合zkServer.sh文件

docker启动后,会调用如下脚本:

#!/bin/bash

IP=`ifconfig eth0 | grep inet | awk '{print $2}' | head -n  | 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服务喽