0
点赞
收藏
分享

微信扫一扫

k8s 自定义pod hosts的几种方法

日常中我们可能会碰到不少关于自定义pod hosts的场景,对于不同的k8s 版本处理的不一样的
以下整理一些参考方法

自定义coredns

自定义coredns 可以直接让解析的域名使用coredns 处理,好处是可以全局生效,不好的地方就是全局可能会影响其他不需要自定义hosts的
扩展coredns 的方法就比较多了,可以基于dns 的转发以及直接配置coredns 的hosts
hosts 模式参考

. {

hosts example.hosts example.org example.net {

fallthrough

}

}

对于k8s 小于1.7 版本的

可以基于声明周期钩子,添加hosts 文件
参考
yaml 定义,添加如下

lifecycle:

postStart:

exec:

command: ["/bin/sh", "-c", "echo <ip>  <domain>  >> /etc/hosts"]

对于比较多的,我们可以直接使用文件配置,格式和hosts 一致

对于大于等于1.7 版本的

使用hostAliases
参考

apiVersion: v1

kind: Pod

metadata:

name: hostaliases-pod

spec:

restartPolicy: Never

hostAliases:

- ip: "127.0.0.1"

hostnames:

- "foo.local"

- "bar.local"

- ip: "10.1.2.3"

hostnames:

- "foo.remote"

- "bar.remote"

containers:

- name: cat-hosts

image: busybox:1.28

command:

- cat

args:

- "/etc/hosts"

参考资料

​​https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/​​​
​​​https://coredns.io/plugins/hosts/​​

举报

相关推荐

0 条评论