问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何配置kubernetes dns

发布网友 发布时间:2022-04-20 17:07

我来回答

2个回答

热心网友 时间:2023-09-25 23:39

创建一个简单的 Pod 来用作测试环境

使用以下内容创建一个名为 busybox.yaml 的文件:

busybox.yaml 

apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- name: busybox
image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always

然后使用此文件创建一个 pod 并验证其状态:

$ kubectl create -f busybox.yaml
pod "busybox" created

$ kubectl get pods busybox
NAME      READY     STATUS    RESTARTS   AGE
busybox   1/1       Running   0          <some-time>

一旦该 pod 运行,您就可以在环境中执行 nslookup。如果您看到如下所示的内容,则 DNS 工作正常。

$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server:    10.0.0.10
Address 1: 10.0.0.10

Name:      kubernetes.default
Address 1: 10.0.0.1

如果 nslookup 命令失败,请检查以下内容:

首先检查本地 DNS 配置

看一看 resolv.conf 文件。(有关更多信息,请参阅 从节点继承 DNS 和 下面的 已知问题)

$ kubectl exec busybox cat /etc/resolv.conf

验证搜索路径和名称服务器是否设置如下(请注意,搜索路径可能因不同的云提供商而异):

search default.svc.cluster.local svc.cluster.local cluster.local google.internal c.gce_project_id.internal
nameserver 10.0.0.10
options ndots:5

以下错误表明 kube-dns 附加组件或相关服务存在问题:

$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server:    10.0.0.10
Address 1: 10.0.0.10

nslookup: can't resolve 'kubernetes.default'

或者

$ kubectl exec -ti busybox -- nslookup kubernetes.default
Server:    10.0.0.10
Address 1: 10.0.0.10 kube-dns.kube-system.svc.cluster.local

nslookup: can't resolve 'kubernetes.default'

检查 DNS pod 是否正在运行中

使用 kubectl get pods 命令验证 DNS pod 是否正在运行中。

$ kubectl get pods --namespace=kube-system -l k8s-app=kube-dns
NAME                    READY     STATUS    RESTARTS   AGE
...
kube-dns-v19-ezo1y      3/3       Running   0           1h

如果您看到没有 pod 正在运行中,或者 pod 已失败/已完成,那么在当前环境中,默认情况下可能不会部署 DNS 插件,您将不得不手动部署它。

检查 DNS pod 中的错误

使用 kubectl logs 命令查看 DNS 守护程序的日志。

$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c kubedns
$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c dnsmasq
$ kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name) -c sidecar

看看有没有可疑的日志。字母 ‘W‘、’E‘、’F’ 表示警告、错误和失败。请搜索具有这些日志级别的条目,并使用 kubernetes 问题 来报告意外错误。

DNS服务起来了吗?

通过使用 kubectl get service 命令验证 DNS 服务已启动。

$ kubectl get svc --namespace=kube-system
NAME          CLUSTER-IP     EXTERNAL-IP   PORT(S)             AGE
...
kube-dns      10.0.0.10      <none>        53/UDP,53/TCP        1h
...

如果您已经创建了该服务,或者应该在默认情况下创建它,但它没有出现,请参阅 调试服务 以获取更多信息。

DNS endpoints 是否暴露?

您可以使用 kubectl get endpoints 命令验证是否暴露了了 DNS endpoints。

$ kubectl get ep kube-dns --namespace=kube-system
NAME       ENDPOINTS                       AGE
kube-dns   10.180.3.17:53,10.180.3.17:53    1h

如果您没有看到 endpoints,请参阅 调试服务 文档中的 endpoints 部分 。

有关其他 Kubernetes DNS 示例,请参阅 Kubernetes GitHub 仓库中的 cluster-dns 示例。

已知问题
Kubernetes 安装不会将节点的 resolv.conf 文件配置为默认使用集群 DNS,因为该过程本身就是发行版的。最终可能会这么实现。

Linux 的 libc 不可能摆脱(见 2005 年的这个 bug)只有 3 个 DNS nameserver 记录和 6 个 DNS search 记录的*。Kubernetes 需要消耗 1 个 nameserver 记录和 3 条 search 记录。这意味着如果本地安装已经使用了 3 个 nameserver 或使用了多于 3 条 search,那么其中一些设置将会丢失。作为部分解决方法,节点可以运行 dnsmasq,它将提供更多 nameserver 条目,但没有更多的 search 条目。您也可以使用 kubelet --resolv-conf 标志。

如果您使用 Alpine 3.3 或更低版本作为您的基本镜像,由于 Alpine 的某些已知问题,DNS 可能无法正常工作。

kubernetes 调试 DNS 解析

热心网友 时间:2023-09-25 23:40

第种添加象
第二种接近答案
确:其minion/etc/kubernetes配置拷贝安装kubeletkube-proxy启两服务
k8s网络配置DNS

自定义DNS策略,设置允许 Pod 忽略 Kubernetes 环境中的 DNS 设置,Pod 会使用其 dnsConfig 字段 所提供的 DNS 设置。用户可以在 dnsConfig 字段中指定以下属性:创建上面的 Pod 后,容器 test 会在其 /etc/resolv.conf 文件中获取以下内容:Pod 从运行所在的节点继承名称解析配置,即跟所在节点主机一...

ip 池 - StormProxies

StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,StormProxies还提供多种API参数,以账密管理方式提取IP,保证了安全性。StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...

kube-dns配置注意及问题排查

- --cmd=nslookup kubernetes.default.svc.cluster.lcoal 127.0.0.1:10053 &gt;/dev/null - --url=/healthz-kubedns - --port=8080 - --quiet 如果一段时间healthz一直解析不过,就会发送一个terminated信号给kubedns,这时即使kubedns本身正常(可以通过kubedns直接执行nslookup进行解析验证),也会...

DNS 策略

1. **ClusterFirst**:这是Kubernetes集群的标准策略,当未在Pod的yaml文件中指定时,Pod会使用Kubernetes的CoreDNS服务进行DNS解析,若无法解析,会转交给宿主机。2. **Default**:当设置为Default时,Pod会采用宿主机的DNS配置,即Pod使用宿主机的DNS服务器进行解析。3. **ClusterFirstWithHostNet**:当...

CoreDNS 搭建内网 DNS 解析服务

1. 拉取CoreDNS镜像。2. 启动CoreDNS容器。CoreDNS配置文件为模块化设计,通过编写配置文件可定义解析规则。首先,创建一个名为`Corefile`的文件,这是CoreDNS的核心配置文件。在`/etc/coredns/Corefile`中,配置文件的初始括号部分表示全局区域(带有`.`表示所有流量),监听端口53(默认为udp)。全局区域...

Kubernetes DNS 记录

你可以使用headless Service来跟其他服务发现机制交互,不需要绑定到Kubernetes方案。Headless Services,没有分配 cluster IP ,kube-proxy 不负责这些 Services, 平台上没有负载均衡或代理处理。DNS的自动配置,依赖于Service是否定义了selectors:定义了selectors的headless Services,endpoints controller 在API ...

09-kubernetes中的域名解析流程

其中主要有二个地方来解析配置 1、这段配置的意思是cluster.local后缀的域名都是kubernetes内部域名,coredns会监控service的变化来修改域名的记录 2、如果coredns没有找到dns记录,则去找 /etc/resolv.conf 中的 nameserver 解析 接下来使用一个带有nslookup工具的Pod来验证DNS服务能否正常工作:通过ns...

Kubernetes 入门教程

Headless Service 就是通过 DNS 的方式,可以解析到某个 Pod 的地址,这个 DNS 地址的规则就是: 下面我们创建集群对应的 Headless Service:apiVersion:v1kind:Servicemetadata:name:redis-sfslabels:app:redis-sfsspec:clusterIP:None#这里的None就是Headless的意思,表示会主动由k8s分配ports:-port:6379name:redis-sfs...

kubeadm 专题 一 init 究竟干了些什么

通过 API server 安装 DNS 服务器 (CoreDNS) 和 kube-proxy 组件。在 Kubernetes 版本 1.11 和更高版本中,CoreDNS 是默认 DNS 服务器。要安装 kube-dns 而不是 CoreDNS,必须在 kubeadm 配置文件的ClusterConfiguration 字段中配置 DNS 附加组件(通过 kubeadm config 文件)。请注意,虽然已部署 ...

Kubernetes最新版2023.07v1.27.4安装和集群搭建保姆级教程

搭建集群时,从环境配置开始,如安装必要的运行时环境、设置国内镜像加速,确保hostname正确。在master节点上执行初始化命令并安装网络插件(如Flannel),节点加入master后,通过kubectl确认集群状态。对于有代理环境,需正确配置代理,确保镜像下载和DNS连接正常。总结,Kubernetes的最新版本安装和集群搭建过程需要...

kubernetes(k8s)Gitlab CI Runner 的安装

1.验证 Kubernetes 集群 执行下面的命令验证 Kubernetes 集群:cluster-info这个命令会显示当前链接的集群状态和可用的集群服务列表。2.获取 Gitlab CI Register Token 上节已经成功安装了 Gitlab,在浏览器中打开 hwzxgit.sinoing.net 页面,然后登录后进入到管理页面 http://hwzxgit.sinoing.net/admin ...

kubernetesdns kubernetes kubedns kubedns详解 k8s coredns dns配置错误怎么办 配置dns什么意思 突然dns配置错误 dns地址配置错误怎么办
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
庐山的原名叫什么 庐山的命名由来和文化传说有哪些? 怎样轻松运营本地资讯网站 微信发图片怎么突然模糊了 怎么将excel表格中的数字去掉怎么将excel表格中的数字去掉一个_百度... ...由于没有工作经验,求职会计和出纳都是石沉大海,怎么办? 我想找一种测试工具。工作范围:软件测试,产品功能测试,电子相关器件... 有一个小米手机推荐游戏,我想不起来名字是英文的 音乐超级带感 好像... 怎么样吃石榴最爽? 石榴怎么吃?像吃西瓜一样吗? 如何配置Kubernetes的kubedns 怎么在kubernetes里面搭建hadoop集群 如何在Kubernetes中部署一个高可用的PostgreSQL集... 如何向部署好的Kubernetes上添加node 如何在裸机中自动安装部署CoreOS和Kubernetes k8s如何发布应用 k8s cronjob 启动顺序 Kubernetes如何入门? k8s deploy 部署在哪个node 如何在本地搭建k8s的server 如何在Docker上部署Kubernetes 怎么在ubuntu上安装kubernetes 如何入门k8s? 搭建k8s有哪些方式 空调遥控器上的图标都是什么意思? 万能空调遥控器上显示pm是什么意思 pmv模式是什么意思 空调遥控器pmv是什么意思 诛仙3榛子仁在哪 ··姓:王 名:榛。性别:女。农历2009年3月28日早8... 苹果笔记本mac pro键盘功能图解 为什么苹果macbookPro键盘最上面的一排键不管用,... macbookpro键盘不起作用 求人来扫盲一下,macbook pro的键盘是机械键盘吗 15款macbookpro键盘手感不一样 Macbook Pro键盘有必要带键盘膜吗?(正常使用灰尘... 苹果笔记本macbookpro键盘失灵怎么维修 如何清洗 MacBook pro 的键盘 macbookpro怎么外接键盘 macbook pro键盘清理 macbook pro 键盘突然失灵!!!急救啊!!! macbook pro外接键盘哪款好 macbookpro键盘无法使用 为啥抖音的圆这么难集? 抖音卡,根本集不齐,都是骗人的吧? 为什么抖音发卡不能单独集齐,会合成钻石卡? 抖音集齐钻卡怎么一分钱也没领,活动就结束了? 为什么抖音上的锦鲤红包钻卡为什么这两天集齐的人... 山东省内有哪些比较好用的视频会议系统品牌? 视频会议系统哪家好?我是在山东的。