怎麼在hosts寫入代碼?在創建pod時,如果dns配置不合理,想在pod裡的/etc/hosts添加相關條目進行解析,可以使用hostAliases來實現,下面我們就來聊聊關于怎麼在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 ~]#
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!