我目前遇到ECS服务发现和Route53自动命名问题。
我已将Service Registry添加到服务中,并且所有Hosted Zones记录都将自动填充。但我似乎无法解决如何使用NGINX + ngx_upstream_resolveMK解析DNS SRV记录。
# DNS RESOLVER
resolver ns-x.awsdns-xx.com valid=10s;
# UPSTREAMS
upstream kibana {
resolveMK servicediscovery.ecs service=kibana;
}
# HOST - kibana.example.com
server {
server_name kibana.example.com;
listen 80;
location / {
proxy_pass https://kibana/;
rewrite ^/(.*)$ /$1 break;
}
}
错误:nginx: [emerg] host not found in upstream "servicediscovery.ecs" in /usr/local/nginx/sites-enabled/kibana.conf:3
因此,似乎需要将“servicediscovery.ecs”解析为Route 53私有区域时缺少A记录。
我需要手动添加吗?或者有没有办法动态添加这个A记录?
我认为这是问题的原因,但我仍然在学习,可能会离开。
更新:
我读过你也可以使用xxx.xxx.xxx.2通过AWS VPC访问DNS我已经使用新的解析器进行了测试而没有太多运气。
# DNS RESOLVER
resolver xxx.xxx.0.2 valid=10s;
我们通过交换到HAProxy解决了这个问题。
另一个问题是使用正确的服务发现格式。
创建名为_ip.xxxxxxx.ecs
的新私有名称空间,并将服务发现名称命名为_prometheus
。在ecs
中创建新服务时,两者都可以实现。