Juju 移除处于死亡状态的单位,这样我就可以重新开始?

Juju 移除处于死亡状态的单位,这样我就可以重新开始?

我使用 Juju 在 MaaS 上运行机器。其中一些机器部署失败,因为我在配置中设置的(无效)设置导致钩子未运行。在 Jju UI 中,我尝试将它们标记为已解决,然后尝试删除它们(并重复几次,让它们先变绿,然后又变红)。

(我相信执行 resolve + remove 将使 juju 不会因钩子不起作用而陷入困境,并让 juju 摆脱机器。)

现在我有一些单位似乎卡住了,并且说

    agent-state: error
    agent-state-info: 'hook failed: "install"'
    agent-version: 1.16.0.1
    life: dying

处于 juju 状态。我尝试过摧毁这些单位和它们所在的机器。有没有办法放弃这些单位并回收它们所在的机器以备下次尝试?

我也尝试在命令行上标记单元已解决,但我收到了冲突的消息。ERROR cannot set resolved mode for unit "ceph-osd/1": already resolved当我尝试将其标记为已解决时,我收到了消息,但之后当我运行juju status

    agent-state: error
    agent-state-info: 'hook failed: "install"'
    life: dying

更新:一两个小时后我回来了,发现我遇到问题的一个单元不见了。所以,等待确实有效。

答案1

我有同样的问题,这里是解决方案:

1)在 MAAS 中重新启动节点
2)Charms 将进入错误状态
3)juju 解析“你的单位”
4)juju destroy-service“你的服务”
它对我有用!

答案2

我发现杀死它们的唯一方法(快速)就是破坏环境。

juju destroy-environment

当然,由于从头开始重建环境可能相当激烈,我建议等待一段时间再执行此操作。有时,所有钩子只需要一段时间才能完成执行,然后希望服务不再处于垂死状态。请注意,要真正释放机器,在销毁单元(juju destroy-unit)后,您需要运行juju destroy-machine(使用机器编号)来释放它。请注意,juju destroy-machine不会终止当前充当单元的机器,因此如果单元当前处于垂死状态,它不会释放单元。

我假设你开始构建你的环境。检查机器的日志文件会很有帮助(我也检查它们,但不是为了找出它们为什么没有死机,而是为了找出它们为什么没有完成)。

答案3

在部署服务之前备份 Juju 的数据库。如果出现问题而你无法修复,只需从备份数据库恢复 Juju 即可。

相关内容