怎么在hosts写入代码(通过hostAliases为pod添加etchosts条目)

在创建pod时,如果dns配置不合理,想在pod里的/etc/hosts添加相关条目进行解析,可以使用hostAliases来实现,下面我们就来聊聊关于怎么在hosts写入代码?接下来我们就一起去了解一下吧!

怎么在hosts写入代码(通过hostAliases为pod添加etchosts条目)

怎么在hosts写入代码

在创建pod时,如果dns配置不合理,想在pod里的/etc/hosts添加相关条目进行解析,可以使用hostAliases来实现。

hostAliases在.spec下定义,和containers字段对齐。

在/etc/hosts里每行的条目的格式是:

IP地址1 主机名1 主机名2

当访问主机1或者主机2时,系统会自动解析到 IP地址1 这样。

在hostAliases里定义的格式是

- ip: "ip地址1"

hostnames:

- "主机名1"

- "主机名2"

这样在创建pod之后,pod的/etc/hosts会自动多了如下条目。

IP地址1 主机名1 主机名2

看下面的例子,创建一个pod3,yaml文件如下。

[root@vms51 ~]# cat pod3.yaml

apiVersion: v1

kind: Pod

metadata:

name: pod3

spec:

terminationGracePeriodSeconds: 0

hostAliases:

- ip: "10.1.1.1"

hostnames:

- "aa.local"

- "bb.local"

- ip: "10.1.1.2"

hostnames:

- "cc.local"

- "dd.local"

containers:

- name: pod3

image: busybox

imagePullPolicy: IfNotPresent

command: ["sh","-c","cat /etc/hosts ; sleep 10000000"]

restartPolicy: Never

dnsPolicy: ClusterFirst

[root@vms51 ~]#

这里创建pod3,这里在hostAliases里两个两个IP,每个IP对应两个主机名,所以在pod3里的/etc/hosts添加两个条目

10.1.1.1 aa.local bb.local

10.1.1.2 cc.local dd.local

下面创建pod并验证。

[root@vms51 ~]# kubectl apply -f pod3.yaml

pod/pod3 created

[root@vms51 ~]#

[root@vms51 ~]# kubectl get pods

NAME READY STATUS RESTARTS AGE

pod3 1/1 Running 0 5s

[root@vms51 ~]#

查看pod3里的/etc/hosts的内容。

[root@vms51 ~]# kubectl exec -it pod3 -- tail -3 /etc/hosts

#Entries added by HostAliases.

10.1.1.1 aa.local bb.local

10.1.1.2 cc.local dd.local

[root@vms51 ~]#

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页