代码之家  ›  专栏  ›  技术社区  ›  fat fantasma

Openshift 3:除非pod手动缩放到0,然后返回到1,否则应用程序将不会部署

  •  0
  • fat fantasma  · 技术社区  · 7 年前

    我可以在我的Openshift 3 Starter应用程序上部署新版本的唯一方法是,手动将现有的运行pod缩小到0,部署我的最新版本,然后将pod缩小到1。

    如果我没有手动将pod缩小到0,部署过程会导致内存不足错误或超时。当系统在新构建后自动部署时,日志显示它将pod扩展到0,部署,然后扩展到1,这就是错误发生的时候。

    我的应用程序在美国西部2。

    这只是Openshift 3的一个bug,还是我的构建和部署不正确?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Graham Dumpleton    7 年前

    这可能意味着你的内存资源有限。之所以会发生这种情况,是因为默认的部署策略是滚动部署,这意味着在停止旧实例之前,需要有足够的内存来启动新实例。

    您需要做的是切换部署配置以使用“重新创建”部署策略,而不是“滚动”。使用此策略,现有实例将在启动新实例之前关闭,因此您可以在内存配额内工作。

    您可以通过在web控制台中编辑部署配置或运行以下命令来更改为“重新创建”:

    oc patch dc/yourappname --patch '{"spec":{"strategy":{"type":"Recreate"}}}'