我在AWS上对Juju进行了一些试验,并设法使我的服务进入了一个完全悬空的状态。juju服务返回以下内容。
environment: amazon
machines:
"0":
agent-state: started
agent-version: 1.16.5
dns-name: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
instance-id: i-7c2f4c52
instance-state: running
series: precise
hardware: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740M root-disk=8192M
"5":
agent-state: down
agent-state-info: (started)
agent-version: 1.16.5
instance-id: i-9cb9cbb2
instance-state: missing
series: precise
hardware: arch=amd64 cpu-cores=1 cpu-power=100 mem=1740M root-disk=8192M
services:
metest:
charm: local:precise/metest-0
exposed: false
life: dying
relations:
cluster:
- metest
units:
metest/0:
agent-state: down
agent-state-info: (started)
agent-version: 1.16.5
life: dying
machine: "5"
open-ports:
- 80/tcp
public-address: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(我删除了DNS名称,以防万一!)机器5的实例id已根据AWS管理控制台终止。“破坏单元测试/0”、“销毁-服务测试”和“销毁-机器5”都不能解决问题,而且我无法在这种状态下重新部署服务。朱菊的决心似乎也没有效果。
在谷歌上搜索这个问题,我唯一能找到的解决办法就是彻底摧毁我的环境--这不是一个很好的选择。否则我有办法解决这个问题吗?调试这类问题的一般方法是什么?
问题的根本原因是:我们在大部分业务流程中使用Chef,并且发现Chef和API之间偶尔的失败会留下孤立的实例。由于我们从Chef启动的所有实例都带有一个名称,并且这些孤立的实例都未命名,为了避免给Amazon带来不必要的金钱,我们将代码添加到小刀插件中,以终止未命名的实例。我相信你能看出这是怎么回事..。
一旦机器处于这种状态,有什么方法来清理它们(
我尝试过的事情:
destroy-machine --force似乎没有把事情清理干净。我没有发现错误,但似乎状态没有什么变化。发布于 2014-02-12 00:16:32
你可以试试:
juju destroy-machine --force 5
从1.16.5开始,就可以使用--force选项destroy-machine,并且应该删除挂起的机器及其上的所有单元。然后您应该能够重新部署您的服务,但是如果它说“服务已经存在”,只需使用不同的名称部署它。
如果所有这些都失败了,juju destroy-environment -e <name>始终是一个选项。我不确定它是否在1.16.5中也支持--force。
发布于 2014-11-16 02:34:28
我也曾有过类似的情况,我发了“柔术解决”(或者在服务的情况下,你可以给“柔术解决”)。解决了问题。
请看一看“内移居”的“注意事项”部分
https://askubuntu.com/questions/419567
复制相似问题