当前位置: 首页 > article >正文

【云原生kubernetes系列--coredns篇】

1.corednsd的介绍

官网:https://coredns.io/

CoreDNS是一个灵活、可扩展的 DNS 服务器,可以充当 Kubernetes 集群 DNS。与 Kubernetes 一样,CoreDNS 项目由 CNCF

coredns在K8S中的用途,主要是用作服务发现,也就是服务(应用)之间相互定位的过程。

2.coredns的解析流程

在这里插入图片描述
注意:localdns相当于缓存DNS服务器,local dns也减少了coredns的访问压力

1、kubernetes集群中的pod向外发出DNS查询请求

  • pod查询业务域名时,会首先查询pod本身的/etc/resolv.conf文件中配置的DNS服务器IP(就是图中的local-dns pod)
    在这里插入图片描述
    2、pod会先把域名请求转发到local-dns(相当于DNS缓存服务器),如果local-dns有这个业务域名解析记录则直接返回pod的请求,如果local-dns没有这个业务域名的解析请求,则会把pod的请求转发给集群内的coredns服务

3、coredns收到这个请求后与kubernetes Master节点上的API接口通信,以此来获取集群内的服务信息,并建立相应的DNS解析记录,根据记录找到对应的服务IP,并将解析结果返回给localdns

4、local dns收到了coredns的解析结果后,将解析的结果返回给发出请求的Pod

5、Pod根据local dns返回,找到了服务IP,进行实际的网络通信

3.coredns配置文件的解析

  Corefile: |
    .:53 {
        errors          #启用错误日志输出
        health {        #暴露检查接口
            lameduck 5s
        }
        ready                    #ready插件
        kubernetes cluster.local in-addr.arpa ip6.arpa { #kubernetes插件,用于在kubernetes集群中解析服务和pod的DNS请求,in-addr.arpa ip6.arpa反向解析,将IP地址解析成域名
            pods insecure   #pod名称被解析IP地址时,不进行安全性验证
            fallthrough in-addr.arpa ip6.arpa
            ttl 30        #DNS记录的缓存时间
        }
        prometheus :9153    #prometheus插件
        forward . /etc/resolv.conf {         #forward插件,将无法解析的域名请求转发给上游DNS服务器
            max_concurrent 1000
        }
        cache 30
        reload
        loadbalance
    }

4.coredns实验

在这里插入图片描述

kubectl run tomcat-test-2 --image registry.cn-hangzhou.aliyuncs.com/qinge/tomcat-app1:v1

此时访问外部域名是无法被访问的
在这里插入图片描述
在corefile文件中把forward修改为DNS地址,则就可以访问外部域名

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 {
          fallthrough
        }
        prometheus :9153
        forward . 172.17.1.200 {    #修改为dns的地址
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }

在这里插入图片描述

4.1测试

  • 访问集群内部域名
  • 在这里插入图片描述
  • 访问集群外部域名
    在这里插入图片描述

http://www.kler.cn/news/360565.html

相关文章:

  • vue3中el-select v-model=““给v-model默认值一些注意事项;
  • 离散数学实验三c语言(判断运算的性质:封闭性、可结合性、可交换性、幺元、零元、逆元、计算元素的阶、判断是否为特殊的代数系统)
  • 【多模态】CLIP模型技术学习
  • Python教程:Python父类方法重写
  • vue多选框组件
  • 毕业设计—基于 Inception-ResNet模型的皮肤癌分类系统实现
  • JAVA Maven的简单介绍
  • 句柄是什么?有什么用?举例说明
  • opencv彩色图像拷贝加速
  • 从“制造”到“智造”:中图光学测量仪器的进阶与应用
  • R实验——logistic回归、LDA、QDAKNN
  • leetcode中哈希的python解法:Counter()介绍
  • 哪些方法可以缓解面试紧张?
  • Debezium Kafka 全量同步,处理大量写入问题
  • Windows远程桌面连接香橙派orange pi5 Ubuntu22.04系统黑屏问题分析及解决
  • 【Python实例】读取/写入地理空间图形数据
  • JavaScript的第四天
  • 衡石分析平台系统分析人员手册-仪表盘控件概述
  • 《MYSQL实战45讲 》 优化器如何选择索引?
  • python实战项目43:采集汽车之家数据