使用 GitLab CI 与 Argo CD 进行 GitOps 实践

在现在的云原生世界里面 GitOps 不断的被提及,这种持续交付的模式越来越受到了大家的青睐,我们前面也有文章详细讲解了 GitOps 的相关概念,在网上也可以找到很多关于它的资源,但是关于 GitOps 相关的工作流实践的示例却并不多见,我们这里就将详细介绍一个使用示例,希望对大家实践 GitOps 有所帮助。

[阅读全文]

基于 Jenkins、Gitlab、Harbor、Helm 和 Kubernetes 的 CI/CD(一)

上节课和大家介绍了Gitlab CI结合Kubernetes进行 CI/CD 的完整过程。这节课结合前面所学的知识点给大家介绍一个完整的示例:使用 Jenkins + Gitlab + Harbor + Helm + Kubernetes 来实现一个完整的 CI/CD 流水线作业。

其实前面的课程中我们就已经学习了 Jenkins Pipeline 与 Kubernetes 的完美结合,我们利用 Kubernetes 来动态运行 Jenkins 的 Slave 节点,可以和好的来解决传统的 Jenkins Slave 浪费大量资源的缺点。之前的示例中我们是将项目放置在 Github 仓库上的,将 Docker 镜像推送到了 Docker Hub,这节课我们来结合我们前面学习的知识点来综合运用下,使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业。

[阅读全文]

在 Kubernetes 上安装 Gitlab

gitlab on k8s

Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件。

Gitlab主要涉及到 3 个应用:Redis、Postgresql、Gitlab 核心程序,实际上我们只要将这 3 个应用分别启动起来,然后加上对应的配置就可以很方便的安装 Gitlab 了,我们这里选择使用的镜像不是官方的,而是 Gitlab 容器化中使用非常多的一个第三方镜像:sameersbn/gitlab,基本上和官方保持同步更新,地址:http://www.damagehead.com/docker-gitlab/

[阅读全文]

基于 kubernetes 的动态 jenkins slave

基于 Jenkins 的 CI/CD(一)

前面的课程中我们学习了持久化数据存储在Kubernetes中的使用方法,其实接下来按照我们的课程进度来说应该是讲解服务发现这一部分的内容的,但是最近有很多同学要求我先讲解下 CI/CD 这块的内容,所以我们先把这块内容提前来讲解了。提到基于KuberneteCI/CD,可以使用的工具有很多,比如JenkinsGitlab CI已经新兴的drone之类的,我们这里会使用大家最为熟悉的Jenkins来做CI/CD的工具。

[阅读全文]