1、概述

首先部署好kubernetes集群并采用Coredns进行解析,这样集群内部的服务都能通过内部域名进行访问。但是集群内部的coredns与物理机的dns解析不完全统一,coredns不能解析物理机的hostname。所以需要一个统一的dns来管理两者。主要是建立一个coredns的上游dns服务,将物理机环境的解析添加进去。使用dnsmasq做上游的dns,统一管理coredns和物理机集群的hostname解析。dnsmasq部署于物理服务器上,而CoreDNS的上游DNS服务器默认会选择物理机网卡上设置的DNS,只要将dnsmasq作为物理机网卡设置的DNS,那么就可以直接设置为CoreDNS的上游DNS服务器了.

2、部署

#centos
yum -y install dnsmasq

修改配置文件,配置文件默认是/etc/dnsmasq.conf,主要是修改如下:

resolv-file=/etc/resolv.dnsmasq.conf
strict-order
listen-address=127.0.0.1,10.2.73.110
addn-hosts=/etc/dnsmasq.hosts

参数解释:

resolv-file 定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。在此我们定义的是从/etc/resolv.dnsmasq.conf文件中获得。
strict-order 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
listen-address 定义dnsmasq监听的地址,默认是监控本机的所有网卡上

addn-hosts 添加主机记录,就和/etc/hosts文件一样,添加物理机hostname和ip映射

文件:

# cat /etc/resolv.dnsmasq.conf
nameserver 10.42.25.1
nameserver 10.42.25.2
nameserver 114.114.114.114

根据自己的服务器填写。

# cat /etc/dnsmasq.hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
10.2.73.110 ku

3、启动服务

system  start  dnsmasq
system enable dnsmasq
system status dnsmasq

将物理机的/etc/resolv.conf里面nameserver地址换成dnsmasq的服务地址,默认监听53端口。

nameserver 10.2.73.110

由于集群里面的Coredns已经提前部署好了,所以默认使用的是之前的/etc/resolv.conf里面的nameserver,所以不能解析node  name,所以需要重新部署一下Coredns:

kubectl  delete pod coredns-576cbf47c7-6t85b -n kube-system
kubectl delete pod coredns-576cbf47c7-wlsrd -n kube-system

等待几秒钟服务会自动部署好。

4、测试dns

1)在物理机上面,访问外网测试

2)在pod里面

k8s集群之上游dns--dnsmasq,统一管理kubernetes的dns解析的更多相关文章

  1. [k8s]kubespray(ansible)自动化安装k8s集群

    kubespray(ansible)自动化安装k8s集群 https://github.com/kubernetes-incubator/kubespray https://kubernetes.io ...

  2. 近万字案例:Rancher + VMware PKS实现全球数百站点K8S集群管理

    Sovereign Systems是一家成立于2007年的技术咨询公司,帮助客户将传统数据中心技术和应用程序转换为更高效的.基于云的技术平台,以更好地应对业务挑战.曾连续3年提名CRN,并且在2012 ...

  3. K8s集群认证之RBAC

    kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]--- ...

  4. k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船

    非常非常抱歉,新年上班第一天, 在今天阿里云上气候突变情况下,由于我们开船技术差,在今天 10:15~12:00 左右的访问高峰,我们竟然把船给开翻了,造成近2个小时整个博客站点无法访问,由此给您带来 ...

  5. Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记

    目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...

  6. k8s 集群部署--学习

    kubernetes是google开源的容器集群管理系统,提供应用部署.维护.扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母) Pod:若 ...

  7. 1 搭建K8s集群

    官网:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing ...

  8. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群一 环境准备

    本k8s集群参考了 Michael 的 https://gitee.com/pa/kubernetes-ha-kubeadm-private 这个项目,再此表示感谢! Michael的项目k8s版本为 ...

  9. Kubernetes实战总结 - 阿里云ECS自建K8S集群

    一.概述 详情参考阿里云说明:https://help.aliyun.com/document_detail/98886.html?spm=a2c4g.11186623.6.1078.323b1c9b ...

随机推荐

  1. spring mvc controller中的参数验证机制(一)

    一.验证用到的注解 @Valid 对传到后台的参数的验证 @BindingResult 配合@Valid使用,验证失败后的返回 二.示例 1.传统方式 @PostMapping public User ...

  2. 2019年Python数据挖掘就业前景前瞻

    Python语言的崛起让大家对web.爬虫.数据分析.数据挖掘等十分感兴趣.数据挖掘就业前景怎么样?关于这个问题的回答,大家首先要知道什么是数据挖掘.所谓数据挖掘就是指从数据库的大量数据中揭示出隐含的 ...

  3. NC 6系总账凭证联查原始单据

    单据联查凭证可以找个如收款结算单的仿写一个. 而总账凭证联查单据则需要实现联查单据的类,重新写一个类.并把类注册进数据库. 最终效果: public class QuerySellcarryBillS ...

  4. 学生管理系统(Java Swing JDBC MySQL)

    该系统使用 Java Swing.JDBC.MySQL 开发 开发环境 Eclipse.WindowBuilder JDK版本:1.8 代码在百度网盘中(176***5088) 目录结构如下 Data ...

  5. ProcessHacker学习笔记

    ProcessHacker学习笔记 ProcessHacker是一款拥有windows任务管理器的开源软件.学习该软件,可增长windows操作系统多方面系统机制知识和性能统计设计的能力. 1.获取进 ...

  6. cookie方法封装

    将cookie封装主要是为了方便使用,可通过修改参数直接引用在其他需要的地方,不用重新写. 1.添加,删除,修改cookie /** * @param name name:cookie的name * ...

  7. android studio 将自己的项目生成jar包

    很多情况下我们开发的项目不是一个完整的app,而是完成一部分功能,供别人的app使用的情况.这时就需要将我们的项目打包生成jar或者arr库文件,让别人的app导入我们的jar包,就能直接使用我们项目 ...

  8. C++标准库之右值引用与交付语义

    C++标准委员会不应该制定一条阻止程序员拿起枪朝自己的脚丫子开火的规则. 右值引用(rvalue).交付语义(move) 最近阅读<C++标准库第二版>,看到第二章介绍C++11新特性3. ...

  9. Java:ConcurrentHashMap

    ConcurrentHashMap的目的 多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap.虽然已经有一个线程安全的Ha ...

  10. Postman入门使用

    Postman 是一个很强大的 API调试.Http请求的工具,方便易用,毋庸置疑. 1.Postman安装 a. 打开谷歌浏览器 b. 进入设置界面 c. 选择扩展程序 d. 选择chrome网上应 ...