cloud-init 中的 etcd dns-discovery
etcd dns-discovery within cloud-init
我如何bootstrap CoreOS 集群通过 cloud-init 进行 etcd 对等 dns 发现?
我只找到了使用发现令牌服务的示例,但没有找到用于 dns 发现的示例。关于这个的文档真的很少,但有时会被提及。
更新:
我正在寻找启动集群和使用 etcd 的 DNS 发现的可能性,如下所述:https://github.com/coreos/etcd/blob/a4018f25c91fff8f4f15cd2cee9f026650c7e688/Documentation/clustering.md#dns-discovery。
理论上我想用 "discover-srv:" 之类的东西替换 "discovery:",但我不知道现在使用 cloud-init 是否可行。到目前为止我已经尝试过但失败了。
查看源代码我认为您需要的设置命名为:
discovery_srv
在 etcd2 部分。我想它应该采用与您提供的 link 中描述的设置相同的设置。它被翻译成环境变量 ETCD_DISCOVERY_SRV
另外一个注意的设置是:
proxy
proxy_srv
例如猜测,像下面这样的东西可能会起作用。我也有一种感觉,如果你使用破折号,它们会变成下划线,所以 discovery-srv 和 discovery_srv 可能是等价的。不要引用我的话!
coreos:
etcd2:
name: <hostname matching srv record>
discovery_srv: example.com
initial_cluster_state: new
# multi-region and multi-cloud deployments need to use $public_ipv4
advertise_client_urls: http://$public_ipv4:2379
initial_advertise_peer_urls: http://$private_ipv4:2380
# listen on both the official ports and the legacy ports
# legacy ports can be omitted if your application doesn't depend on them
listen_client_urls: http://0.0.0.0:2379,http://0.0.0.0:4001
listen_peer_urls: http://$private_ipv4:2380,http://$private_ipv4:7001
---编辑---
我可以确认需要代理的节点的以下工作。
# cloud-config
coreos:
etcd2:
discovery-srv: example.com
proxy: on
units:
name: etcd2.service
command: start
我如何bootstrap CoreOS 集群通过 cloud-init 进行 etcd 对等 dns 发现?
我只找到了使用发现令牌服务的示例,但没有找到用于 dns 发现的示例。关于这个的文档真的很少,但有时会被提及。
更新:
我正在寻找启动集群和使用 etcd 的 DNS 发现的可能性,如下所述:https://github.com/coreos/etcd/blob/a4018f25c91fff8f4f15cd2cee9f026650c7e688/Documentation/clustering.md#dns-discovery。
理论上我想用 "discover-srv:" 之类的东西替换 "discovery:",但我不知道现在使用 cloud-init 是否可行。到目前为止我已经尝试过但失败了。
查看源代码我认为您需要的设置命名为:
discovery_srv
在 etcd2 部分。我想它应该采用与您提供的 link 中描述的设置相同的设置。它被翻译成环境变量 ETCD_DISCOVERY_SRV
另外一个注意的设置是:
proxy
proxy_srv
例如猜测,像下面这样的东西可能会起作用。我也有一种感觉,如果你使用破折号,它们会变成下划线,所以 discovery-srv 和 discovery_srv 可能是等价的。不要引用我的话!
coreos:
etcd2:
name: <hostname matching srv record>
discovery_srv: example.com
initial_cluster_state: new
# multi-region and multi-cloud deployments need to use $public_ipv4
advertise_client_urls: http://$public_ipv4:2379
initial_advertise_peer_urls: http://$private_ipv4:2380
# listen on both the official ports and the legacy ports
# legacy ports can be omitted if your application doesn't depend on them
listen_client_urls: http://0.0.0.0:2379,http://0.0.0.0:4001
listen_peer_urls: http://$private_ipv4:2380,http://$private_ipv4:7001
---编辑---
我可以确认需要代理的节点的以下工作。
# cloud-config
coreos:
etcd2:
discovery-srv: example.com
proxy: on
units:
name: etcd2.service
command: start