【Nacos】 CoreDNS 下发域名

Metadata

title: 【Nacos】 CoreDNS 下发域名
date: 2023-01-04 15:57
tags:
  - 行动阶段/完成
  - 主题场景/组件
  - 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
  - 细化主题/Module/Nacos/生态
categories:
  - Nacos
keywords:
  - Nacos
description: 【Nacos】 CoreDNS 下发域名

【Nacos】 CoreDNS 下发域名

本插件提供了一个基于 CoreDNS 的 DNS-F 客户端,可以将 Nacos 上注册的服务导出为 DNS 域名。 本 DNS-F 客户端是应用程序进程旁边的一个专用代理进程(side car),可以将服务名作为 DNS 域名查询请求转发到本客户端,提供服务发现的功能。

快速开始

要构建和运行本 nacos-coredns 插件,操作系统必须是 Linux 或 Mac。 另外,请确保您的 nacos 服务端版本为 2.2 或更高级版本,以及 golang 版本为 1.17 或更高级版本, 并且必须正确配置 golang 环境(GOPATH、GOROOT)。因为需要支持 nacos2.x 版本的 gRPC 连接功能和 go mod 功能。

构建

git clone https://github.com/nacos-group/nacos-coredns-plugin.git 
cp nacos-coredns-plugin/bin/build.sh ~/
cd ~/
sh build.sh

配置

运行本 nacos-coredns 插件,您需要一个配置文件。 一个标准的配置文件如下:

. {
    log
    nacos {
    nacos_namespaceId public
    nacos_server_host 127.0.0.1:8848
    }
    forward . /etc/resolv.conf
}
  • forward:未在 nacos 注册的域名将被转发到 upstream。
  • nacos_namespaceId:nacos namespaceId,默认为 public。
  • nacos_server_host:nacos 服务端的 IP 地址和端口,如果有两个或多个 nacos 服务端,用逗号分隔

运行

  1. 首先需要部署一个 nacos 服务端。 部署参考
  2. 其次,在 nacos 上注册服务。
  3. 然后输入配置文件 (path_to_corefile) 和指定端口 (dns_port) ,运行本插件。
$GOPATH/src/coredns/coredns   -conf $path_to_corefile   -dns.port $dns_port

服务发现例子

  • 输入服务名 (nacos_service_name) ,以及插件的 IP 地址 (dns_ip) 和端口 ($dns_port)
dig   $nacos_service_name   @$dns_ip   -p $dns_port