kubedns: kubedns/dnsmasq/sidecar
前言
需要在容器内添加自定义DNS解析记录,无非是1. 在上游DNS添加,2. 在kubedns添加,3. 改容器内/etc/hosts也勉强能满足。但上游DNS很可能你无法操作,一个个改容器内hosts未免也太丑太麻烦。研究了下如何在kubedns中动态添加。
采用ConfigMap将hosts.dnsmasq挂载到dnsmasq容器
kubedns-hosts-cm.yml
|
|
dnsmasq启动参数–addon-hosts指定到hosts.dnsmasq
kubedns-controller.yml
|
|
更新dnsmasq
dnsmasq不会主动监听hosts内容变更。所以在变更后,需主动通知dnsmasq更新,通过发送SIGHUP信号到dnsmasq同志其变更重新加载配置但不重启。
ref: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
|
|
宿主机执行1kill -1 $(ps -ef | grep "sbin/dnsmasq" | grep -v grep | awk '{print $2}')
问题: configmap更新延迟
ConfigMap更新频率被 kubelet –sync-frequency 控制。默认1 min, 更新生效通常在0~1 min之间。
|
|