
CI/CD
文章平均质量分 91
运维开发故事
这个作者很懒,什么都没留下…
展开
-
三方仓库如何实现Zadig流水线自动触发
!大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。作者:乔克公众号:运维开发故事博客:www.jokerbai.com最近因为公司的产研调整,决定将代码仓库从本地的 Gitlab 迁移到云效的 Codeup,不是 Gitlab 不够好,而是 Codeup 在度量、安全等方面比原生的 Gitlab 要好,再则公司的产研管理也迁移到了云效,也为了统一化管理。有同学可能会问,都用云效了,为什么不直接用它的 AppStack,还要用 Zadig?原创 2023-05-30 18:08:58 · 247 阅读 · 0 评论 -
如何使用 Docker 部署 GitLab
微信公众号运维开发故事,作者夏老师你否曾经想托管自己的GitLab存储库以确保代码永远不会落入坏人之手?尽管在第三方云主机上托管你的存储库有很多优势(例如可用性和可靠性),但要完全控制你的存储库,这样任何人都可以在未经你批准的情况下访问它。在Docker的帮助下,您可以做到这一点。我将向你展示它是如何完成的。它并不过分复杂,但需要许多步骤。所以,事不宜迟,让我们开始工作吧。要完成此任务,需要一个正在运行的UbuntuServer实例和一个具有sudo权限的用户。...原创 2022-08-02 14:00:10 · 2859 阅读 · 0 评论 -
使用Zadig从0到1搭建持续交付平台
大家好,我是乔克,一个爱折腾的YAML工程师。最近有朋友叫我出一个Zadig的使用教程,说实话,我并不知道该怎么来写,因为所有的东西在官网都有,我本人也是通过学习官网来进行落地实践的。但是我这人太热情,压不住朋友的再三请求,所以就写一篇我在实际中用到的东西。本篇文章大纲如下:相信有不少朋友已经听过Zadig,但是有更多的朋友还没有听过,或者说听过但是没仔细去了解过,这里我还是简单介绍一下什么是Zadig。Zadig是一个持续交付的平台,它集CI、CD、自动化测试于一身,致力于构建一个云原生开源的软件交付平台原创 2022-07-01 16:29:15 · 3481 阅读 · 1 评论 -
Tekton系列之实践篇-如何用Jenkins来管理Tekton
在《Tekton系列之实践篇-由Jenkins改成Tekton》中,我们可以将Jenkinsfile改成Tekton Pipeline,但是Tekton有一个很大的问题是不能很好的划分权限,特别是在Dashboard上根本就做权限控制,那如果在实际中使用的话权限不明会带来很多问题,比如谁删了什么,谁执行了什么都不知道。如果你公司有自动化运维平台,可以接入Tekton,如果没有就需要在Github上找是否有相关的Dashboard或者平台,可惜我什么都没有.....目前我使用的Kubesphere来管理K8s原创 2022-05-09 16:32:31 · 1173 阅读 · 0 评论 -
Tekton实践篇-Tekton和Argocd的梦幻联动
前面的一系列文章基本已经把Tekton相关的知识介绍完了,如果你认真的看完并且实践过,相信你对Tekton已经有一定的掌握了。在实际的工作中,Tekton可以完成CICD的所有工作,并没有强制的将它划分为CI工具或者CD工具。在今天的文章中,我们就会将CI和CD进行分开,让Tekton专注于CI,CD则交给Argocd。要使用Tekton+Argocd模式,只需要把我们之前deploy的task变成由Argocd完成即可。而原先的deploy的task改成更改镜像信息并推送到Gitlab。所以整体步骤变成如原创 2022-05-09 15:49:31 · 1908 阅读 · 0 评论 -
Git分支使用规范
俗话说:没有规矩,不成方圆。遵循一个好的规章制度能让你的工作事半功倍。同时也可以展现出你做事的认真的态度以及你的专业性,不会显得杂乱无章,管理困难。Git分支规范也是一样。当遵循了某种约定的Git分支,在代码提交以及多开发、多分支协同工作的时候,必须遵循这个规范操作,否则不予以提交、合并代码、提测、上线等操作。分支约定Git Flow有主分支和辅助分支两类分支,通常主分支也被称为长期分支。主分支用于组织与软件开发、部署相关的活动;辅助分支组织为了解决特定的问题而进行的各种活动。主分支是所有开发活动的核心分支原创 2022-05-09 15:17:36 · 1163 阅读 · 1 评论 -
Tekton系列之实践篇-使用Tekton Trigger让Tekton使用更简单
在《Tekton实践篇-如何用Jenkins来管理Tekton》我们介绍了如何使用Jenkins来管理Tekton,这种方式是运维主动式管理,也就是需要运维去触发发布,那有没有可能让自动触发Tekton PipelineRun的运行呢?答案是有的,也就是这篇文章分享的Tekton Trigger。什么是Tekton Trigger? Tekton Trigger是Tekton的一个组件,它可以从各种来源的事件中检测并提取需要信息,然后根据这些信息来运行TaskRun和PipelineRun,还可以将提取出来原创 2022-04-18 18:48:01 · 1581 阅读 · 0 评论 -
Tekton系列之实践篇-由Jenkins改成Tekton
在《Tekton系列之实践篇-我的第一条Pipeline》中我们已经实现了第一条流水线,但是这条流水线还是比较简单,完成了基础的功能。这篇文章带你怎么根据Jenkins的Jenkinsfile来定制自己的Tekton Pipeline。首先我们来看看Jenkinsfile中是什么样子,如下:// 引入方法def dingmes = new org.devops.sendDingTalk()def BUILD_USERdef IS_I原创 2022-03-22 23:43:55 · 1171 阅读 · 0 评论 -
Tekton系列之理论篇【二】
作者 | 乔克博客 | https://www.coolops.cn分享 | 运维开发故事(ID:mygsdcsf)上一篇文章我们介绍了Tekton的安装并且做了简单的测试,但是我们并不知其所以然,而这篇文章主要带大家来了解以及学习所以然。Tekton是开源的云原生CI/CD项目,是基于Kubernetes CRD来定义Pipeline,功能强大并且很容易扩展。在上篇文章中,我们安装完Tekton之后,可以看到安装的CRD如下:# kubectl get crd |&原创 2022-03-10 14:28:05 · 814 阅读 · 0 评论 -
Tekton系列之实践篇-我的第一条Pipeline
作者 | 乔克博客 | https://www.coolops.cn分享 | 运维开发故事((ID:mygsdcsf))前面已经完成了Tekton的安装和理论知识的介绍,如果你认真的看完了文章,相信你会有所收获。这篇文章主要带你来真正实践一下,完成自己的第一条流水线。我们流水线的整体流程如下。流程图整个流程是不是很简单?是的,这是最基本的流程,其实只需要把最基本的搞通,其他的都是在基础之上进行扩展。这里使用Go简单写了一个小代码用于测试,地址是:https://gitee.com/coolops/devop原创 2022-03-10 14:10:14 · 1263 阅读 · 0 评论 -
Tekton系列之安装篇【一】
大家好,我是乔克。从今天开始会给大家带来Tekton的系列文章,主要是自己学习总结,同时也希望对想了解Tekton的朋友有点用处。今天主要分享安装以及简单使用,详细见下文。安装 Tekton的安装非常简单,官方已经将具体的安装文件准备好了,直接安装即可。如下:kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml该方式安装的是最新版原创 2022-03-01 19:01:48 · 1735 阅读 · 0 评论 -
如何通过ingress-nginx实现应用灰度发布?
大家好,我是乔克。今天是元宵,祝大家元宵节快乐!在日常的工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速的业务发展。我们经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧的全部被替换为止。蓝绿发布:两套独立的系统,对外提供服务的称为绿系统,待上线的服务称为蓝系统,当蓝系统里面的应用测试完成后,用户流量接入蓝系统,蓝系统将称为绿系统,以前的绿系统就可以销毁。灰度发布:在一套集群中存在稳定和灰度两个版本,灰度版本可以限制只针对部分人员可用,待灰度版原创 2022-02-17 09:56:52 · 1338 阅读 · 0 评论 -
Argo Workflows-Kubernetes的工作流引擎
什么是Argo Workflows?Argo Workflows是一个开源项目,为Kubernetes提供container-native工作流程,其主要通过Kubernetes CRD实现的。特点如下:工作流的每一步都是一个容器将多步骤工作流建模为一系列任务,或者使用有向无环图(DAG)描述任务之间的依赖关系可以在短时间内轻松运行用于机器学习或数据处理的计算密集型作业在Kubernetes上运行CI/CD Pipeline,无需复杂的软件配置安装安装控制器端Argo Wordflows的安装非常简单,直接原创 2022-01-11 00:53:58 · 1397 阅读 · 1 评论 -
GitLab Runner介绍及安装
一、GitLab Runner 介绍GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI一起使用,GitLab CI是GitLab随附的开源持续集成服务,用于协调作业。GitLab Runner是用Go编写,可以作为单个二进制文件运行,不需要语言特定的要求。二、GitLab Runner的三种类型shared:运行整个平台项目的作业(gitlab)group:运行特定group下的所有项目的作业(group)specific:运行指定的项目作业(pro原创 2022-01-11 00:30:11 · 2487 阅读 · 0 评论 -
基于Jenkins+Argocd+Argo Rollouts的DevOps实现并用金丝雀发布
文章会校对更新,公众号无法更新,可以关注一下博客:https://www.coolops.cn本文主要介绍使用Jenkins配合argocd以及argo rollouts实现CI/CD。其中jenkins配合argocd做CI/CD前面已经介绍过了,这里不再赘述,不懂的地方可以移步《使用Jenkins和Argocd实现CI/CD》。本篇文章新增了如下几个功能:优化argocd的触发CD的速度使用argo rollouts进行金丝雀发布给代码仓库打tag优化Argocd触发CD的速度Argo CD每三分钟轮询原创 2022-01-09 23:35:43 · 2450 阅读 · 1 评论 -
使用argo-rollouts实现金丝雀发布
什么是argo rolloutsArgo-Rollout是一个Kubernetes Controller和对应一系列的CRD,提供更强大的Deployment能力。包括灰度发布、蓝绿部署、更新测试(experimentation)、渐进式交付(progressive delivery)等特性。支持特性如下:蓝绿色更新策略金丝雀更新策略细粒度,加权流量转移自动回rollback和promotion手动判断可定制的指标查询和业务KPI分析入口控制器集成:NGINX,ALB服务网格集成:Istio,Linkerd原创 2022-01-09 23:14:36 · 1498 阅读 · 0 评论 -
基于Jenkins和Argocd实现CI/CD
CI/CD并不是陌生的东西,大部分企业都有自己的CI/CD,不过今天我要介绍的是使用Jenkins和GitOps实现CI/CD。整体架构如下:devops.png涉及的软件以及版本信息如下:软件版本kubernetes1.17.9docker19.03.13jenkins2.249.3argocd1.8.0gitlab社区版11.8.1sonarqube社区版8.5.1traefik2.3.3代码仓库阿里云仓库涉及的技术:Jenkins shareLibraryJenkins pipelineJenkins原创 2022-01-08 15:10:12 · 2814 阅读 · 0 评论 -
Gitlab CI/CD浅谈模板拆分
GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:Continuous Integration (CI) 持续集成Continuous Delivery (CD) 持续交付Continuous Deployment (CD) 持续部署持续集成的工作原理:将小的代码块推送到如GitLab代码仓库中托管,并且每次推送后都要运行一系列脚本来构建、测试和验证代码更改,然后再将其合并到主分支中。持续交付和部署相当于更进一步的CI,可以在每次推送到仓库默原创 2022-01-04 14:33:26 · 859 阅读 · 0 评论 -
在K8S中使用Argo CD做持续部署
作者 | 乔克持续部署这个词对技术人员来说并不陌生,很多时候我们都将CI和CD揉在一起了,今天我们将他们分开。什么是ArgoCDArgo CD is a declarative, GitOps continuous delivery tool for Kubernetes.Argo CD是一个基于Kubernetes的声明式的GitOps工具。在说Argo CD之前,我们先来了解一下什么是GitOps。什么是GitOpsGitOps是以Git为基础,使用CI/CD来更新运行在云原生环境的应用,它秉承了Dev原创 2022-01-04 14:05:31 · 2016 阅读 · 0 评论 -
gitlab-ci的简易入门—基于python项目的CI演示
微信公众号:运维开发故事,作者:double冬1.创建一个python项目使用github上开源的一个python的demo项目,地址为:https://github.com/imooc-course/docker-cloud-flask-demo打开自己的gitlab,点击New project,把项目导入。2.手动部署把项目clone到本地,可以先测试一下手动部署,build镜像之后,然后启动➜ [/Users/mac/PycharmProjects] git clone http.原创 2022-01-02 11:13:30 · 868 阅读 · 0 评论 -
通过kubectx/kubens快速切换管理k8s的context和namespace
微信公众号:运维开发故事,作者:double冬在使用kubectl操作kubernetes集群的过程中,可能会遇到需要操作不同集群的问题,例如本地的minikube集群和线上的部署集群,或是线上的测试集群和线上的部署集群,如果集群之间切换不频繁,也可以使用笨办法,比如准备多个config文件在/.kube文件夹下,要切换的时候就改config的名字,或者使用别名,不过对于需要频繁切换操作集群的人来说,这个方法显然太麻烦了,当然也不够cool。当然,k8s是非常完善的集群解决方案,肯定是考虑到了这个问.原创 2022-01-02 11:08:38 · 1365 阅读 · 0 评论 -
二 GitLab CI服务器的搭建
...原创 2022-01-02 11:02:50 · 409 阅读 · 0 评论 -
GitlabCI与JenkinsCI对比
...原创 2022-01-02 10:25:38 · 4148 阅读 · 0 评论 -
GitLab的安装部署
微信公众号:运维开发故事,作者:double冬本文主要讲述了GitLab安装部署的两种方式,以及遇到的一些问题一 GitLab Server的搭建参考:https://about.gitlab.com/install/1.准备工作以centos7为例,准备一台至少内存为4G的机器。系统版本:CentOS Linux release 7.3.1611 (Core)软件版本:Gitlab-ce-11.10.1硬件要求:最低2核4GB,建议4核8GB2.安装依赖软件[root@loca.原创 2021-12-31 16:00:54 · 3108 阅读 · 0 评论 -
Git学习笔记(git应用)
每个人在通往牛逼的道路上总是充满着傻逼——陈师傅在服务器上搭建 Git(需要提前安装Git)1.首先创建一个git用户和git组[root@docker ~]# groupadd git[root@docker ~]# useradd -ggit git禁止 git 用户 ssh 登录服务器,修改/etc/passwd文件 ,git-shell 是git的受限 shell 工具,你可以方便地将用户 git 的活动限制在与 Git 相关的范围内。该工具随 Git 软件包原创 2021-12-08 16:09:49 · 361 阅读 · 0 评论 -
Git学习笔记(理论部分)
大多数的仪式感只是为了让没有意义的事情变得有意义——陈师傅安装Git1.使用yum安装[root@docker ~]# yum installgit2.使用源码安装安装依赖环境[root@docker ~]# yum installcurl-devel expat-devel gettext-devel \ openssl-devel zlib-devel下载源码包[root@docker ~]# wget https://mirrors.edge.kernel.org/pub/software转载 2021-12-08 15:45:35 · 881 阅读 · 0 评论