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

相关推荐
明明跟你说过16 分钟前
在【k8s】中部署Jenkins的实践指南
运维·ci/cd·云原生·容器·kubernetes·jenkins
酥暮沐19 分钟前
K8S 集群搭建——cri-dockerd版
linux·容器·kubernetes
a_j5822 分钟前
k8s面试题总结(十)
云原生·容器·kubernetes
沉默的八哥25 分钟前
RBAC的工作原理,以及如何限制特定用户访问
运维·kubernetes
一条闲鱼_mytube1 小时前
[Kubernetes] 7控制平面组件
java·平面·kubernetes
Yuanymoon2 小时前
【由技及道】镜像星门开启:Harbor镜像推送的量子跃迁艺术【人工智障AI2077的开发日志010】
java·docker·jenkins·harbor·devops
dleei4 小时前
使用docker创建gitlab仓库
前端·docker·gitlab
Hellc0076 小时前
使用 Docker 部署 RabbitMQ 并实现数据持久化
docker·rabbitmq·ruby
梦游钓鱼7 小时前
在window终端创建docker容器的问题
运维·docker·容器
钢板兽8 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试