从其他实例访问CoreOS

时间:2015-07-23 11:26:01

标签: coreos

我有一个包含3个实例的coreOS集群。我需要在3个实例中初始化一个服务,但我不想使用IP连接。是否有动态方式扫描实例并获取IP然后使用它?

3 个答案:

答案 0 :(得分:1)

您可以使用以下命令获取集群实例的列表以供进一步处理:

fleetctl list-machines | awk '{print $2}' | tail -n +2

答案 1 :(得分:1)

如果您想在其中一个容器/服务中使用IP,并且您在云提供商上运行CoreOS,则可以使用分配的IP来源环境文件:

[Service] EnvironmentFile=/etc/environment

然后将这些值用作环境变量。

答案 2 :(得分:1)

CoreOS有一个名为fleet的内置调度程序,可在所有主机上运行。您只需创建服务并执行命令即可运行该服务: fleetctl start myunit.service

要拖延您可以运行的服务的输出:fleetctl journal -f myunit.service,它将自动ssh到运行容器的主机,并查看输出。

“我需要在3个实例中初始化服务” 您似乎正在尝试运行应在CoreOS群集中的所有主机上处于活动状态的服务。 Take a look at the X-Fleet variable Global。您可以将服务设置为在所有主机上运行,​​方法是将其添加到服务/单元文件的底部:

[X-Fleet]
Global=true

这样,您只需启动一次服务,即可在CoreOS集群中的所有主机上启动它。