CoreDNS与DNS理论基础全解析
1. CoreDNS简介
在容器化环境中,追踪特定服务的运行位置颇具挑战。例如,支持数据库服务的容器需要与授权服务通信,以确定是否允许特定用户进行特定搜索。若实现授权服务的容器为适应负载而动态启停,如何获取所有正在运行的授权容器列表呢?答案通常是DNS(Domain Name System,域名系统)。由于容器间通信几乎都基于IP(Internet Protocol,互联网协议),且开发者数十年来一直使用DNS查找资源的IP地址,因此使用DNS识别提供特定服务的容器是很自然的选择。
CoreDNS在这方面表现出色。它不仅是一个灵活、安全的DNS服务器,还能直接与包括Kubernetes在内的许多容器编排系统集成。这使得容器化应用的管理员能够轻松设置DNS服务器,以调解和促进容器间的通信。
不过,CoreDNS目前也存在一些显著的局限性,并非适用于所有可能的DNS服务器场景。其中最主要的是,至少在当前版本中,CoreDNS不支持完全递归。也就是说,CoreDNS无法从DNS命名空间的根开始处理查询,向根DNS服务器查询并遵循引用,直到从某个权威DNS服务器获得答案,而是依赖其他DNS服务器(通常称为转发器)来完成这一过程。
 以下是CoreDNS与BIND的关键功能差异对比表: 
 | 功能 | CoreDNS | BIND | 
 | — | — | — | 
 | 完全递归 | 否 | 是 | 
 | 动态更新 | 否 | 是 | 
 | 与Kubernetes集成 | 是 | 否 | 
 | 与Amazon Route 53集成 | 是 | 否 | 
 | 域名系统安全扩展(DN
                      
                            
                        
                            
                            
                          
                          
                            
                  
                订阅专栏 解锁全文
                
            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					1035
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            