本文章摘选自 《云原生应用构建 基于OpenShift 魏新宇 王洪涛等著》
S2I与Jenkins相结合实现CI/CD主要有以下三种方式。·Jenkins负责CI,S2I负责CD。·Jenkins管理Pipeline,调度OpenShift S2I完成CI/CD。·在OpenShift上使用Jenkins File,调用Jenkins实现CI、OpenShift负责CD。我们称这种方式为OpenShift Pipeline。在第一种方式中,Jenkins负责CI,输出物是应用软件包(如jar、war包),然后应用包以B2I的方式注入Builder Image中。本质上,B2I是S2I的一个特殊使用场景,如图所示。
在第二种方式中,整个CI/CD的动作都是由S2I完成,但由Jenkins控制整个Pipeline。在这种方式下,Pipeline的触发是在Jenkins上完成的,如图所示。
第三种即OpenShift Pipeline方式。在这种方式下,通过Jenkins File定义整个Pipeline,Pipeline的触发在OpenShift界面上完成。
CI通过Jenkins完成,CD通过OpenShift完成,如图所示。在以上三种方式中,我们推荐使用第三种OpenShift Pipeline方式。这种方式的好处如下。·便于管理:Pipeline的管理由OpenShift完成,避免客户反复切换界面。·可维护性强:如果我们想要修改CI/CD流水线的环节(如增加UAT),只需要修改Jenkins file即可
Red Hat OpenShift平台提供Jenkins的容器化镜像,如图所示。在OpenShift上部署的Jenkins,可以实现与OpenShift账户的单点登录。