由于程序要部署到K8S里面,需要解析各种域名,但是程序使用了chroot导致无法找到hosts文件(默认路径/etc/hosts)
解决方法先编写一个脚本,在没有运行程序时候解析各个域名的IP地址然后放到chroot后的 etc/hosts(注意这个是相对路径不是绝对路径!!)
首先你要安装 nslookup 这个命令
然后就是脚本了
#!/bin/sh
ip=`nslookup kafka-0.kafka.antiy.svc.cluster.local | grep Address | grep -v "#" | awk -F": " '{print $2}'`
echo "$ip kafka-0.kafka.antiy.svc.cluster.local" > /var/MyPro/etc/hosts
上面就是脚本笔者的程序chroot到/var/MyPro/目录,所以需要在/var/MyPro/下面建立etc文件夹,这样脚本执行后就有了kafka域名的IP地址了。最后在运行程序!