【为K8s的coredns配置上游DNS服务器】
为K8s的coredns配置上游DNS服务器
- 一、背景描述
- 二、如何修改coredns达到目的
- 三、修改coredns 解析指定域名走指定dns
- ①、get coredns configmap
- ②、修改coredns configmap
- ③、查询现有coredns pod并逐个重启
- ④、验证解析是否正确
一、背景描述
有一个项目需要部署到客户内网,并通过nat映射实现外网访问!
项目中有多个服务之间调用是走的外网域名,项目采用k8s集群容器部署,客户的网络情况导致服务之间通过外网域名互调时总是 connection time out!
通过在容器中解析服务域名是没问题,然而telnet 域名对应ip + 端口超时。
现在想到的解决办法就是,内网做一个dns服务器,将服务之间调用的域名通过内网dns做一个解析,然后将k8s集群机器dns指向内网dns。这样做到的目的就是内网调用走内网ip!
按上面修改之后k8s宿主机是走内网了,然而容器依然还是走的外网ip,再进容器解析域名发现依然是解析到外网ip上!
通过度娘得知:
在Kubelet配置中通过使用–cluster-dns=10.10.10.2参数指定的coredns地址会被写入容器的/etc/resolv.conf配置中。
并且在kublet配置中通过resolv-conf参数可以指定一个主机上的DNS配置文件,但在默认DNS策略下主机上DNS配置文件中仅仅只有search部分会被加到容器内,nameserver不会被添加到容器中,要想添加自定义的上游DNS可以通过修改coredns的configmap配置来实现。
二、如何修改coredns达到目的
①、直接修改coredns上游dns服务器。
②、修改coredns添加 hosts 解析
③、根据域名指定上游dns服务器
本文通过第三种方式,指定容器内解析域名 example.com 域名,及改域名的三级、四级域名时指向外部dns服务器。
三、修改coredns 解析指定域名走指定dns
①、get coredns configmap
kubectl -n kube-system edit configmap coredns
②、修改coredns configmap
通过命令:kubectl edit configmap coredns -n kube-system
在coredns configmap 中添加这么一段配置
example.com:53 {errors cache 30forward . 172.16.1.1reload}
example.com 为需要解析的域名
172.16.1.1 为外部dns服务器
以下为完整configmap文件
apiVersion: v1
kind: ConfigMap
metadata:annotations:labels:eks.amazonaws.com/component: corednsk8s-app: kube-dnsname: corednsnamespace: kube-system
data:Corefile: |.:53 {errorshealthkubernetes cluster.local in-addr.arpa ip6.arpa {pods insecureupstream 172.16.0.1fallthrough in-addr.arpa ip6.arpa}prometheus :9153proxy . 172.16.0.1cache 30loopreloadloadbalance}example.com:53 {errors cache 30forward . 172.16.1.1reload}consul.local:53 {errorscache 30proxy . 10.150.0.1}
③、查询现有coredns pod并逐个重启
kubectl get pod -n kube-system |grep coredns
kubectl delete pod core-dns-xxxx -n kube-system
④、验证解析是否正确
验证方式一:
kubectl run busybox --restart=Never --image=busybox -- sleep 3600
kubectl exec busybox -- nslookup example.com
验证方式二
以下复制别人的文章,host 解析的域名适当变更测试即可。
[root@k8s-master-1 coredns]# kubectl run -it --rm --restart=Never --image=infoblox/dnstools:latest dnstools
If you don't see a command prompt, try pressing enter.
dnstools# host 0DJ01YUR.sobeydemo.com
0DJ01YUR.sobeydemo.com has address 100.64.148.116
0DJ01YUR.sobeydemo.com has IPv6 address 2002:6440:9474::6440:9474
dnstools# host minio.chinamcloud.com
minio.chinamcloud.com has address 100.64.139.66
Host minio.chinamcloud.com not found: 3(NXDOMAIN)
Host minio.chinamcloud.com not found: 3(NXDOMAIN)
dnstools#
参考:http://www.ksky.net/archives/67
参考:https://www.cnblogs.com/lixinliang/p/14519011.html
参考:https://blog.csdn.net/bingfan5073/article/details/100958025
参考:https://www.cnblogs.com/keithtt/p/13204497.html
参考:https://blog.51cto.com/foxhound/2483880
【为K8s的coredns配置上游DNS服务器】相关推荐
- dns服务器响应配置,没有配置的dns服务器响应
没有配置的dns服务器响应 内容精选 换一换 本节介绍如何配置WAF的对外协议与源站协议.根据您的业务场景的不同,WAF提供灵活的协议类型配置.假设您网站为www.example.com,WAF可配置 ...
- Mac配置本地DNS服务器
目录 1.安装Homebrew 1.1官网 1.2安装命令 1.3可能出现的错误 1.3.1解决方法1 1.3.2解决方法2 1.4常用命令 2.安装Dnsmasq 2.1安装 2.2启动 2.3重启 ...
- Linux系统(Centos 7)配置主DNS 服务器实例
配置主DNS 服务器实例 下面将结合具体实例介绍缓存DNS.主 DNS.辅助DNS等各种 DNS 服务器的配置. 1.案例环境及需求 某校园网要架设一台DNS 服务器负责long.com ...
- CentOS7 linux 配置辅助DNS服务器
实验环境: 物理机操作系统:windows 10 VMware版本:VMware Workstation16 镜像版本:CentOS-7-x86_64-DVD-1611 实验需求: 授权DNS服务 ...
- CentOS7.6域名服务器配置(一)使用Bind配置主从DNS服务器
CentOS7.6 使用Bind配置主从DNS服务器 一.环境信息说明 1.1 实现场景 配置实现在一个服务器上配置多域名解析(多区域文件) 配置域名反向解析(这个如果不配置邮件服务器,则不是很重要, ...
- dns服务器响应名称,在没有配置的 DNS 服务器响应之后,名称xxxx的名称解析超时。...
日志名称: System 来源: Microsoft-Windows-DNS-Client 日期: 2016/8/2 23:19:51 事 ...
- 简述使用BIND配置本地DNS服务器(centos 6.8)
DNS简介: DNS,Domain Name System,域名系统,用于Internet上域名和IP地址的相互映射,使得用户不用记忆主机IP地址,仅通过与之对应的域名就可以访问该主机. 关于BIND ...
- windows服务器增加dns,windows server 2008配置之DNS服务器
一.设置固定IP地址和DNS 1.点击右下角网络图标,选择网络和共享中心. 2.选择右边的管理网络连接 3.右击本地连接,选择属性 4.选择Internet协议版本4(TCP/IPv4),点属性 5. ...
- linux dns 泛域名,linux配置从dns服务器泛域名解析负载均衡【实验】
实验一 实验名称:搭建从dns服务器 步骤1:基本环境 两台dns服务器,一主一从,一台客户机做测试同一网段能够ping通 步骤2:安装软件包 由于我的主dns服务器已经打好了,参考上一实验,这里直接 ...
最新文章
- 改进型 clock 页面置换算法实现_ID生成算法雪花算法介绍及实现
- 缓解数据包丢失对WAN的影响是当务之急—Vecloud微云
- Leetcode 33.搜索旋转排序数组 (每日一题 20210707)
- 《Effective STL》学习笔记(第二部分)
- OpenGL实现3D立体显示
- 数据结构——排序算法(含动态图片)
- python实战讲解_Python数据可视化实战讲解
- 微软 WPF 框架源码现已托管至 GitHub
- http 请求_HTTP请求方法有哪些?
- PhoneGap在Microsoft Visual Studio Express For Windows Phone上编译出错的解决方案
- php如何写代码禁用广告,不再显示广告案例(php操作cookie)
- 计算机硬件英语单词有哪些,计算机硬件英语词汇
- Tomcat 6.0 安装与启动
- Postman安装与简单使用
- vector初始化方法(待补充)
- java前后端分离,前端部署的方式
- 小学计算机专业说课稿模板,小学信息技术说课稿集锦
- manjaro 配置 独立显卡驱动
- 关于 trello 和 slack 的感想及使用经验
- 《磨菇书三四章整理》