个人觉得kubernetes需要整合Jenkins、Harbor、Gitlab还有日志管理、监控管理等等的其他组件,看需要,来实现持续部署持续发布的全流程
GitLab主要负责开发代码的存放管理。
Jenkins是一个持续集成持续发布引擎,使用jenkins感觉它太重了,不太适合容器,当然也可以选择其他的。
Harbor就是私有镜像仓库了,新版Harbor提供了镜像安全扫描等功能,当然也可以使用其他的,如registry。
完成DevOps的话需要整合这些进行一些平台化的开发,这样才会有比较好的交互体验。也可以直接使用Jenkins
使用原生kubernets实现CI/CD最大的弊端,就是你需要自己搞定Jenkins、Registry,以及外围的ELK监控、grafana等等东西,单是部署这些都要花费大量时间。
Openshift已经集成Jenkins,自带内部registry,支持pipeline,用户需要做的就是搭建自己的Gitlab或者SVN用以存放自己的源代码,Openshift社区在Jenkins中实现了很多openshift插件,使得你在Jenkins和openshift之间可以实现互动关联操作,同时openshift提供了私有镜像仓库,可以将编译后的docker镜像存储在openshift内部registry中,然后在开发、测试和生产环境都可从这个registry中抓取镜像部署,开发、测试和生产环境之间在Jenkins中通过openshift插件进行触发,完美解决构建pipeline实现CI/CD。所以,完全没别要自己搞k8s+Jenkins,openshift已经提供了一站式解决方案。还是那句话,与其闷头搞K8S,不如直接上openshift!