我试图在VPC中的AWS CoreOS实例上设置一个小型EC2集群。在这个练习中,我使用了两个自动缩放组,一个是三台机器中的一个,它将形成核心的etcd和consul集群,然后是第二个自动缩放组,目前只有一个节点,随着应用程序的增长,这个节点实际上会扩展。它们都在一个公共的etcd集群中。
本周,coreos.com发布了build 681到稳定分支,立即将其中一个节点更新为681.0,但48小时后,主集群中的3个节点仍保留在647.2版本上。当我查看日记时,我看到的是:
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:libcurl_http_fetcher.cc(48)] Starting/Resuming transfer
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:libcurl_http_fetcher.cc(164)] Setting up curl options for HTTPS
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:libcurl_http_fetcher.cc(427)] Setting up timeout source: 1 seconds.
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:libcurl_http_fetcher.cc(240)] HTTP response code: 200
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:libcurl_http_fetcher.cc(297)] Transfer completed (200), 267 bytes downloaded
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: [0611/142517:INFO:omaha_request_action.cc(574)] Omaha request response: <?xml version="1.0" encoding="UTF-8"?>
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: <response protocol="3.0" server="update.core-os.net">
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: <daystart elapsed_seconds="0"></daystart>
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: <app appid="e96281a6-xxxx-xxxx-xxxx-xxxxxxxxxxxx" status="ok">
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: <updatecheck status="noupdate"></updatecheck>
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: </app>
Jun 11 14:25:17 ip-10-0-68-116.ec2.internal update_engine[477]: </response>所以节点会得到没有更新的响应。
这是coreos团队试图负载平衡他们的文件服务器的方式,还是有其他的配置?这就是coreos试图推动我走向付费服务的方式吗?我对更新过程的理解是,节点会像多米诺骨牌一样被一个接一个地更新。
这是集群的当前状态:
for m in $(fleetctl list-machines -fields="machine" -full -no-legend); do fleetctl ssh $m cat /etc/lsb-release; done
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=647.2.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 647.2.0"
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=681.0.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 681.0.0"
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=647.2.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 647.2.0"
DISTRIB_ID=CoreOS
DISTRIB_RELEASE=647.2.0
DISTRIB_CODENAME="Red Dog"
DISTRIB_DESCRIPTION="CoreOS 647.2.0"更新一周后,:集群仍然处于半升级状态。如果有人有经验的话,我很想知道如何调试这类问题。
发布于 2015-12-22 00:28:44
正如注释中提到的,在这种情况下,机器可能会收到更新,在查看了故障数量之后,CoreOS OS团队决定停止将更新扩展到更多的主机,以避免导致更多的故障。
如果您想强制进行更新检查,可以运行:
$ update_engine_client -check_for_update
[0123/220706:INFO:update_engine_client.cc(245)] Initiating update check and install.有关更多详细信息,请参阅https://coreos.com/os/docs/latest/update-strategies.html
https://stackoverflow.com/questions/30784178
复制相似问题