多种选项可将应用程序部署到OpenShift

时间:2018-07-10 13:04:34

标签: docker openshift openshift-origin openshift-enterprise

据我了解,可以使用多种方法将应用程序添加到OpenShift容器平台中的项目。

  • 从源(s2i)构建Docker映像,然后将映像部署到OpenShift
  • 从Dockerfile构建Docker映像,然后将映像部署到OpenShift
  • 单独构建Docker映像(在OpenShift外部),然后将映像部署到OpenShift
  • 单独(在OpenShift外部)构建应用程序的二进制文件,然后将二进制文件部署到OpenShift

我知道没有一个适合所有人的尺码,但是我想办法突出每个选项周围的情况,例如为什么我要使用一个特定选项而不是其他选项?

更新 可能提出该问题的另一种方式是您的公司使用哪种方法,为什么?

2 个答案:

答案 0 :(得分:1)

我对每个选项的个人看法如下,

答案 1 :(得分:1)

我认为,您指的是不同的Build Strategy Options。而且,在您的问题中,您可能错过了Pipeline Build strategy

图像来源

假设您已经开发了一个基本的NodeJS后端应用程序。您的目标是快速启动它并在OpenShift集群中运行。当我快速地说时,我的意思是不必学习Docker知识。在这种情况下,您将使用S2I。

  1. start中包含一个package.json脚本以指向node index.js
  2. 将代码提交到GitHub(或任何其他Git存储库)。
  3. oc new-app .
  4. 完成。

Docker

继续使用基本的NodeJS后端示例,您可能会意识到OpenShift使用的base NodeJS image可能不适合您(出于多种原因)。也许您想使用Docker official NodeJS image。当然,可能还有其他非NodeJS的原因为您的应用程序构建容器,例如特殊环境变量等。在这里,您将使用Dockerfile

来自Docker Hub的Docker映像

您也可以deploy a pre-built Docker image。请注意,默认情况下,OpenShift安全约束不允许您将容器作为root运行。本文链接对此进行了调用,并为此约束提供了解决方法。

RedHat注册表

与以前的情况相同,但是,此部署需要此article中所述的机密(需要登录)。

因此,只要可以以OpenShift的“祝福”方式访问您的容器存储库,您就可以在外部构建映像并将其引入进行部署。

二进制

我可以引用为“场景”的最接近的是这个question。否则,也许构建方法是如此特殊,以至于在执行之前最好在“受控”环境中完成。

我的偏好

就我自己而言,我会走这条路。

  1. 开发人员(包括我自己)需要专注于完成功能-因此,请使用S2I。
  2. 运营团队(包括我自己)需要专注于打包-因此,请使用1中开发的功能并将其转换为Dockerfile。或者,甚至是Jenkinsfile
  3. 管理团队(包括我自己)对将映像放置在Internet上非常敏感-因此,将Docker映像推送到私有存储库中。
  4. 如果要对以上所有内容进行专有处理,请使用Binary build选项。

希望这会有所帮助。