K8s hosts 解析 HostAliases
先来通过下图来表达一下现象:
通过图片内容可以看出,在 k8s 中,容器内部的 hosts 解析是不会继承宿主机的 host 解析的(与宿主机不相干),常规情况我们在这个应用体系内都有公共的 DNS 服务,DNS 服务是跨主机和容器共享的。
只是有时候在没有公共DNS解析服务的情况下,而容器中的程序又需要通过本地域名的方式去请求接口。这就需要我们手工配置 hosts 映射,这个配置如图来看在宿主机上配置是不可行的,那么在 k8s 的应用场景中,它为我们提供了可以为 pod 配置 hosts 解析的方式,如题所述就是使用 HostAliases。
使用说明
基于Pod 的示例:
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
command:
- cat
args:
- "/etc/hosts"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
基于 Deployment 的示例:
apiVersion: v1
kind: Deployment
metadata:
name: hostaliases-dp
namespace: default
spec:
replicas: 1
selector:
name: hostaliases-pod
template:
metadata:
labels:
name: hostaliases-pod
spec:
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
imagePullPolicy: Always
command:
- cat
args:
- "/etc/hosts"
————————————————
版权声明:本文为CSDN博主「catoop」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/catoop/article/details/122068545
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了