首页 > 其他分享 >CoreDNS实现自定义域名解析

CoreDNS实现自定义域名解析

时间:2022-09-07 18:01:35浏览次数:111  
标签:kube 自定义 arpa 域名解析 system 172.16 CoreDNS coredns

参考:https://support.huaweicloud.com/usermanual-cce/cce_01_0361.html

一、修改CoreDNS Hosts配置

修改CoreDNS配置文件,将自定义域名添加到hosts中。

例如将www.example.com指向192.168.1.1,通过CoreDNS解析www.example.com时,会返回192.168.1.1。

须知:
此处配置不能遗漏fallthrough字段,fallthrough表示当在hosts找不到要解析的域名时,会将解析任务传递给CoreDNS的下一个插件。如果不写fallthrough的话,任务就此结束,不会继续解析,会导致集群内部域名解析失败的情况。
hosts的详细配置请参见https://coredns.io/plugins/hosts/。
[root@k8s01-zongshuai dev]# kubectl edit configmap coredns -n kube-system
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        hosts {
           172.16.43.178   bx-cdh01
           172.16.43.187   bx-cdh02
           172.16.43.189   bx-cdh03
           172.16.43.192   bx-cdh04
           172.16.43.193   bx-cdh05
           172.16.43.177   cdh01
           172.16.43.199   cdh02
           172.16.43.184   cdh03
           172.16.43.182   cdh04
           172.16.43.159   cdh05
           fallthrough
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2021-11-30T07:36:28Z"
  managedFields:
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data: {}
    manager: kubeadm
    operation: Update
    time: "2021-11-30T07:36:28Z"
  - apiVersion: v1
    fieldsType: FieldsV1
    fieldsV1:
      f:data:
        f:Corefile: {}
    manager: Mozilla
    operation: Update
    time: "2022-09-07T07:11:00Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "112726088"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: 218630e6-42f7-4e64-a0cf-cf97ac6bc6d6

在CoreDNS中修改hosts后,就不用单独在每个Pod中配置hosts了,带来了一定的方便性。  

二、添加CoreDNS Rewrite配置指向域名到集群内服务

使用 CoreDNS 的 Rewrite 插件,将指定域名解析到某个 Service 的域名,相当于给Service取了个别名。

修改CoreDNS配置文件,将example.com指向default命名空间下的example服务。

$ kubectl edit configmap coredns -n kube-system
apiVersion: v1
data:
  Corefile: |-
    .:5353 {
        bind {$POD_IP}
        cache 30
        errors
        health {$POD_IP}:8080
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        rewrite name example.com example.default.svc.cluster.local
        loadbalance round_robin
        prometheus {$POD_IP}:9153
        forward . /etc/resolv.conf
        reload
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2021-08-23T13:27:28Z"
  labels:
    app: coredns
    k8s-app: coredns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: CoreDNS
    release: cceaddon-coredns
  name: coredns
  namespace: kube-system
  resourceVersion: "460"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: be64aaad-1629-441f-8a40-a3efc0db9fa9 

三、使用CoreDNS级联自建DNS

修改CoreDNS配置文件,将forward后面的/etc/resolv.conf,改成外部DNS的地址

$ kubectl edit configmap coredns -n kube-system
apiVersion: v1
data:
  Corefile: |-
    .:5353 {
        bind {$POD_IP}
        cache 30
        errors
        health {$POD_IP}:8080
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
        }
        loadbalance round_robin
        prometheus {$POD_IP}:9153
        forward . 192.168.1.1
        reload
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2021-08-23T13:27:28Z"
  labels:
    app: coredns
    k8s-app: coredns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: CoreDNS
    release: cceaddon-coredns
  name: coredns
  namespace: kube-system
  resourceVersion: "460"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: be64aaad-1629-441f-8a40-a3efc0db9fa9

  

标签:kube,自定义,arpa,域名解析,system,172.16,CoreDNS,coredns
From: https://www.cnblogs.com/lina-2159/p/16666696.html

相关文章

  • SpringBoot使用自定义注解+AOP+Redis实现接口限流
    为什么要限流系统在设计的时候,我们会有一个系统的预估容量,长时间超过系统能承受的TPS/QPS阈值,系统有可能会被压垮,最终导致整个服务不可用。为了避免这种情况,我们就需要对......
  • java poi - excel cell 设置自定义颜色
    XSSFCellStylecellStyle=wb.createCellStyle();cellStyle.setFillForegroundColor(newXSSFColor(newColor(195,227,255)));cellStyle.setFillPattern(FillPatter......
  • zabbix自定义监控
    zabbix自定义监控自定义监控进程测试监控httpd,需要在监控端部署httpd,以方便监控``配置监控脚本#在监控端[root@localhost~]#dnf-yinstallhttpd[root@localhost......
  • zabbix自定义监控进程与日志
    zabbix自定义监控进程与日志目录zabbix自定义监控进程与日志zabbix自定义监控进程zabbix自定义监控日志zabbix自定义监控进程基于之前的邮箱告警,部署完成后,我们在zabbi......
  • 【WPF】自定义用登入界面 (C#) -从认证和授权说起。
    概要自定义如下界面登入界面WPF桌面软件。写代码时候要注意哪些事情呢?答案:认证和授权。  我们在桌面应用软件登入界面时,作为小白一般都是用明文密码登入软件然后就......
  • zabbix自定义监控进程和日志
    zabbix自定义监控进程和日志目录zabbix自定义监控进程和日志自定义监控进程配置监控脚本添加监控项添加触发器手动关闭httpd服务,触发报警自定义监控日志服务端和客户端操......
  • 【uni-app】自定义导航栏/标题栏
    什么是自定义导航栏默认导航栏或原生导航栏是啥样的,你懂的。但,我想给导航栏加个背景图,比如这样: 这时候就需要自定义导航栏。自定义导航栏自定义导航栏的中心思想是: ......
  • client-go开发自定义operator
    开发operator一共分为5步骤一、创建configconfig的创建有两种方式1、clientcmd.BuildConfigFromFlagsconfig,err:=clientcmd.BuildConfigFromFlags("",clientcmd.......
  • idea自动生成实体类,自动添加注释,自定义实体类
    之前写过一篇博客记录了idea编译器怎么快速生成实体类,但是发现没有自动添加注释,如果字段比较多的话,看着很不友好:https://www.cnblogs.com/lyd447113735/p/14924011.html所......
  • 组件的自定义事件和原生事件、组件的嵌套
    原生事件在原生组件(就是html标签)中事件是由系统来设计触发条件的:<div@click="fn">点我</div> 自定义事件在自定义组件中,事件是由自己来设计什么时候触发的......