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