由于字符无效,无法通过 DNS 发现 Consul 节点

Consul node will not be discoverable via DNS due to invalid characters

我们主要是一个基于 VM 的环境,有很多需要客户端发现、配置管理等的微服务。所以决定使用 Hashicorp Consul。

我们遇到了一个问题:带点 (.) 的主机名

[WARN] agent: Node name "myorg.vsi.uat.xxx.com" will not be discoverable via DNS due to invalid characters. Valid characters include all alpha-numerics and dashes.

我们目前无法更改主机名。尝试使用配置更改节点名称但无法找到成功。

我们可以做些什么来解决这个问题?

您可以编写小的 bash 脚本并使用它来启动带有 random uuid as name by providing config file name override 的代理,首先 运行:

    FILE=/etc/consul.d/host_id.hcl
    if [ ! -f "$FILE" ]; then
        echo "node_name=$(uuidgen)" > "$FILE"
    fi
    consul agent -config-file=$FILE #... use your your agent run command with loading file config override