K8S CoreDNS部署失败,问题分析
1. 查询k8s集群部署pod的基本情况
如下图,我们可知容器coredns和dnsutils都部署成功,但是由于域名解析的问题,导致coredns和dnsutils的容器不断重启(原因heath检查,无法请求成功,被kubelet重启了pod)
命令如下:
root >> kubectl get all --all-namespaces -o wide
root >> kubectl describe pod coredns-57bbd778b9-kxl7b -n kube-system
root >> kubectl logs coredns-57bbd778b9-kxl7b -n kube-system
2. 修改VM的DNS解析文件之前,
如下图:cat /etc/resolv.conf 中192.168.3.1是我VM物理机的网卡设置的DNS名称,这个是一个虚拟的错误的DNS地址,实际上是我路由器的IP。
docker exec -it fda365569efa /bin/bash,表示进入k8s容器dnsutils-ds-55fpd内部。
10.3.0.2,这个是我k8s集群中定义和创建的CoreDNS容器的ClusterIP,如果部署成功的话,内外网的域名或服务访问,都可以通过它做地址解析。
问题:如下图,在容器内部,不能正常解析 外网地址www.baidu.com 和 内部地址cluster.local。这里说明是物理机VM的nameserver配置错误导致的。
3. 修改VM的DNS解析文件之后,
# 修改VM机器上的网卡配置文件eno01,如下图替换为正确的DNS地址。
# 这里我们用谷歌的DNS域名地址8.8.8.8 和 本地K8S集群CoreDNS的CluterIP地址10.3.0.2。
root >> vi /etc/sysconfig/network-scripts/ifcfg-eno01
# 然后记得保存,重启VM机器之后,我们在重新检查CoreDNS解析是否正常,操作如下:
root >> cat /etc/sysconfig/network-scripts/ifcfg-eno01
root >> cat /etc/resolv.conf
root >> ping -c 1 www.baidu.com
root >> ping -c 1 10.3.0.2
root >> ping -c 1 kubernetes
root >> nslookup www.baidu.com
root >> nslookup kubernetes
root >> nslookup kube-dns.kube-system.svc
root >> nslookup kube-dns.kube-system.svc.cluster.local
root >> nslookup cluster.local
#### docker 内部检查dns 解析
root >> docker ps | grep dns
dnsutils root >>
K8S CoreDNS部署失败,问题分析的更多相关文章
- K8S CoreDNS部署失败,发现的一个问题
K8S CoreDNS部署失败,查看错误日志,提示如下 root >> kubectl get all --all-namespaces -o wide root >> kub ...
- K8S从入门到放弃系列-(12)Kubernetes集群Coredns部署
摘要: 集群其他组件全部完成后我们应当部署集群 DNS 使 service 等能够正常解析,1.11版本coredns已经取代kube-dns成为集群默认dns. 1)下载yaml配置清单 [root ...
- 10、二进制安装K8s之部署CoreDNS 和Dashboard
二进制安装K8s之部署CoreDNS 和Dashboard CoreDNS 和Dashboard 的yaml文件在 k8s源代码压缩包里面可以找到对应的配置文件,很多人从网上直接下载使用别人的,会导致 ...
- IdentityServer4环境部署失败分析贴(一)
前言: 在部署Idv4站点和其客户端在外网时,发现了许多问题,折腾了许久,翻看了许多代码,写个MD记录一下. 1.受保护站点提示错误: Unable to obtain configuration f ...
- Hexo - 记录一次Pages服务部署失败的原因
问题与分析 某天忽然发现,一直运行得好好的Pages服务部署失败了,GitHub Pages报错如下: Your site is having problems building: The tag c ...
- Kubernetes之在k8s中部署Java应用
部署好了k8s以后 部署参考https://www.cnblogs.com/minseo/p/12055731.html 怎么在k8s部署应用 项目迁移到k8s平台是怎样的流程 1,制作镜像 2,控制 ...
- Kubernetes addons 之 coredns部署
Kubernetes addons 之 coredns部署 2019.06.04 18:04:35字数 1045阅读 121 DNS 是 Kubernetes 的核心功能之一,通过 kube-dns ...
- 在k8s上部署日志系统elfk
日志系统elfk 前言 经过上周的技术预研,在本周一通过开会研究,根据公司的现有业务流量和技术栈,决定选择的日志系统方案为:elasticsearch(es)+logstash(lo)+filebea ...
- 优化:在k8s上部署的gitlab
gitlab组件图 gitlab在k8s上占用资源 # kubectl top pods -n default | grep git* gitlab-gitaly-0 9m 444Mi gitlab- ...
随机推荐
- Navicat Premium 详解
Navicat是一套数据库管理工具,专为简化数据库的管理及降低系统管理成本而设. Navicat 是以直觉化的图形用户界面而建的,可以安全和简单地创建.组织.访问并共用信息. Navicat Pre ...
- 201871010124--王生涛--《面向对象程序设计(java)》第十二周学习总结
博文正文开头格式: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nw ...
- Anaconda 下载
Anaconda官网:https://repo.anaconda.com/archive/清华大学镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/a ...
- (translation.E004) You have provided a value for the LANGUAGE_CODE setting that is not in the LANGUAGES setting.
django3.0开始LANGUAGE_CODE前面必须配相应的LANGUAGES配置如下: from django.utils.translation import gettext_lazy as ...
- Apex 小知识:SOQL 在循环中的应用
两种在循环中引用 SOQL 的方法 第一种方法: List<Account> accounts = [SELECT Id FROM Account WHERE NumberOfEmploy ...
- html 单元格合并
<table border="1" style={{margin:200}}> <tbody> <tr> <th colspan=&quo ...
- 生成指定python项目中所有的依赖文件
一. pipreqs工具 这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单. 缺点是可能会有些偏差,需要检查并自己调整下. 安装: pip install pipre ...
- [LeetCode] 723. Candy Crush 糖果消消乐
This question is about implementing a basic elimination algorithm for Candy Crush. Given a 2D intege ...
- [LeetCode] 99. Recover Binary Search Tree 复原二叉搜索树
Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...
- Git的学习总结
首先,Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 也是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. ...