我正在关注CoreOS上的DigitalOcean教程(https://www.digitalocean.com/community/tutorials/how-to-create-flexible-services-for-a-coreos-cluster-with-fleet-unit-files)。当我在节点1和节点2上执行fleetctl list-machines命令时,我无法看到列出的所有3台机器,只能看到它自己的节点。以下是我看到的内容:
core@coreos-1 ~ $ fleetctl list-machines
MACHINE IP METADATA
XXXX... 10.abc.de.fgh -
我登录到我的第3个节点并注意到当我执行fleetctl list-machines时出现以下错误:
core@coreos-3 ~ $ fleetctl list-machines
Error retrieving list of active machines: googleapi: Error 503: fleet server unable to communicate with etc
我该怎么做才能找出问题所在以及如何解决这个问题?我尝试过重启和其他提到的事情,但没有任何帮助。
答案 0 :(得分:0)
发生的事情是我在我的单元文件中有一个etcd依赖项,其中包括:
# Dependency ordering
After=etcd.service
我想我需要etd2代替。
所以我按照指示做了以下事情:
sudo systemctl stop fleet.service fleet.socket etcd
sudo systemctl start etcd2
sudo systemctl reset-failed
当我查询文件时,我不得不清理有文件的实例:
core@coreos1 ~ $ etcdctl ls /_coreos.com/fleet/job
/_coreos.com/fleet/job/apache.1.service
/_coreos.com/fleet/job/apache@.service
/_coreos.com/fleet/job/apache@80.service
/_coreos.com/fleet/job/apache@9999.service
/_coreos.com/fleet/job/apache-discovery.1.service
/_coreos.com/fleet/job/apache-discovery@.service
/_coreos.com/fleet/job/apache-discovery@80.service
/_coreos.com/fleet/job/apache-discovery@9999.service
发出
etcdctl ls /_coreos.com/fleet/job/apache.1.service
etcdctl rm --recursive /_coreos.com/fleet/job/apache-discovery.1.service
然后我开始了舰队
sudo systemctl start fleet
当我再次使用fleetctl list-machines时,它显示了我所有的实例连接。