我有一个包含3个实例的coreOS集群。我需要在3个实例中初始化一个服务,但我不想使用IP连接。是否有动态方式扫描实例并获取IP然后使用它?
答案 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集群中的所有主机上启动它。