部署 charm 后(无论是否在本地),juju 状态都会显示“待处理”。它似乎处于此状态一段时间,根据我的经验,在云端停留时间较长,在本地停留时间较短。这段时间里 juju 在做什么?
对于本地实例,需要几分钟或更短的时间,对于云实例则需要更长的时间,在某些情况下最多需要 10 分钟。我只是好奇在设置虚拟机时部署是否处于待处理状态,或者是否发生了其他事情?
答案1
您所看到的对我来说看起来很正常。
Juju 不仅需要配置操作系统,还需要安装其客户端、更新以及您要部署的任何 charm。除此之外,它还取决于您要部署到的云以及实例类型有多少资源。在此之前,juju 显示Pending
。
使用本地提供商时,第一次执行此操作需要最长的时间,因为它需要下载约 300mb 的 Ubuntu 服务器映像才能开始。之后,捆绑的位apt-cacher-ng
使之后的部署更快,因此本地部署需要几分钟是正常的。
在 Amazon Web Services 上,镜像已经存在于他们的云中,而且他们在所有地区都有经过认证的镜像,这意味着可以相对快速地(LAN 速度)更新和安装。其他一些提供商没有本地 Ubuntu 镜像,因此这实际上取决于当天的互联网速度,因此这个时间可能会有很大差异。
即使镜像速度快,也存在其他因素。如果您的 charm 正在执行大量操作,例如安装整个 Java 堆栈,但您使用的是相对较小的实例(尤其是 t1.micros),则这可能会比具有更高 Ubuntu 可用 IO 的实例花费更长的时间。
在 AWS 上进行现场演示时,我通常需要大约 5 分钟的部署时间,足以启动一些实例,然后返回到我的演示。
为了改善这一情况,我们正在采取以下措施:
- 从 Juju .6 开始,我们现在使用云映像进行安装,而不是必须经过整个安装过程并安装和配置包的普通 ubuntu 服务器安装。
- 我们与云提供商密切合作,以确保实例启动时间尽可能快。
- 使用 go 重写意味着 Juju 不需要在每个实例上安装相关的 Java 依赖项,这可能可以缩短启动时间并减少实例的内存消耗。(我还没有亲自测试过)
- 鼓励 charm 作者在适当的时候在其 Charm 的 README 中提及长下载/安装。
通常,启动和运行实例相对较快,您可以通过尽快 ssh 进入图像并检查 juju 日志文件来准确了解正在发生的事情,您只需跟踪它们并找到罪魁祸首;根据我的经验,它一直在等待通过 apt 下载和安装。