Kubernetes 为pod指定DNS

在k8s里面,默认创建pod会给pod默认分配一个默认的dns,这个dns是哪来的呢?可不可以改成其他的dns呢?

先进入到pod里面来,可以看到这里面默认设置的DNS服务器,这个服务器地址为10.96.0.10。这个地址是k8s自动的为pod设置的dns服务器。通过coredns来创建的。

为什么会设置为这个地址呢?可不可以修改这个地址呢?

在创建pod的时候,首先要将请求发送给apiserver,apiserver将请求发送给kubelet,由kubelet去调用runtime去将对应的容器创建出来。

这里有dnsPolicy,设置为ClusterFirst ,表示优先使用集群里面的DNS服务器,那么集群里面的DNS服务器是谁呢?

kubelet是知道的,因为最终都是有kubelet告诉runtime,runtime是什么都不懂,全部由kubelet去告诉runtime怎么创建pod。

cat /var/lib/kubelet/config.yaml

所以说当创建pod的时候,并没有指定使用的是哪个DNS服务器,pod里面指定的是clusterfirst,优先使用集群里面的dns,kubelet知道既然使用集群里面的dns,那么集群里面的dns就是clusterdns 10.96.0.10。

所以kubelet创建的容器dns地址就是10.96.0.10。那么创建pod的时候可不可以去修改它所使用的dns呢?

这里的dnspolicy改为none,也即是不使用任何的dns。到底使用哪个由我自己来配置。

如果需要配置如下:

这样创建的pod不再使用集群里面的dns了,而是使用指定的dns,

上面就是在创建pod的时候具体怎么设置dns的。

相关推荐
wdfk_prog40 分钟前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
Zhu7581 小时前
docker环境快速部署postgresql数据库18及以上版本
postgresql·容器
zoutao982 小时前
Gitea Actions 自定义 Runner 镜像与自动化部署实战
ci/cd·docker·gitea
安易算力3 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
小马同学-4 小时前
nerdctl实战:Docker风格的Containerd操作利器
docker·容器·containerd
九皇叔叔4 小时前
Kubernetes 命令式对象配置详解:使用 YAML 管理 Kubernetes 资源
docker·容器·k8s
CVer儿5 小时前
docker内llama.cpp和TRT-LLM win11本机部署qwen3.8
docker
萤火夜5 小时前
Docker(四) Docker介绍
docker·容器
.冰块.6 小时前
Docker 镜像深度学习:分层 Copy‑on‑Write、Dockerfile 语法、Harbor 私有仓库实操
docker·容器·harbor·镜像·dockerfile·images
szephyr6 小时前
Docker 镜像瘦身实战:从 1.2GB 压到 85MB 的完整过程
docker·容器·部署·多阶段构建·镜像优化