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的。

相关推荐
金刚猿4 分钟前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong31 分钟前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿1 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
陈桴浮海2 小时前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
张小凡vip3 小时前
Kubernetes--k8s中部署redis数据库服务
redis·kubernetes
Hello.Reader4 小时前
Flink Kubernetes HA(高可用)实战原理、前置条件、配置项与数据保留机制
贪心算法·flink·kubernetes
70asunflower4 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
ShiLiu_mtx5 小时前
k8s - 7
云原生·容器·kubernetes
春日见5 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe26 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr