当前位置: 首页 > news >正文

最低价做网站郑州网络营销学校

最低价做网站,郑州网络营销学校,新一波新冠病毒疫情最新消息,网站前端设计理念目录 一、概述 二、典型操作流程 2.1 CI/CD典型操作流 2.2 CI/CD操作流程说明 2.3 总结 三、基于GitHubDocker的持续交付/持续部署流水线(公有云) 3.1 基于GitHubDocker的持续交付/持续部署操作流程示意图 3.2 GitHubDocker持续交付/持续部署流水…

目录

一、概述

二、典型操作流程

2.1 CI/CD典型操作流

2.2 CI/CD操作流程说明

2.3 总结

三、基于GitHub+Docker的持续交付/持续部署流水线(公有云)

3.1 基于GitHub+Docker的持续交付/持续部署操作流程示意图

3.2 GitHub+Docker持续交付/持续部署流水线技术实现原理

3.2.1 添加Action模板

3.2.2 构建Workflow流程

四、基于Jenkins+Docker+K8s的持续交付/持续部署流水线

4.1 Jenkins+Docker+K8s持续部署流程示意图

4.2 Jenkins+Docker+K8s持续部署流水线技术实现原理

4.2.1 安装KubeOperator

4.2.2 Jenkins配置

4.2.2.1 安装Jenkins K8s插件

4.2.2.2 配置K8s凭据

4.2.2.3 配置K8s集群连接

4.2.2.4 Jenkinsfile 文件编写

4.2.3 总结


一、概述

在实际工作中,CI/CD通常是在一起的。但是为了详细地向大家讲述其中涉及的技术要求将其拆分,分别向大家讲述持续交付、持续部署与持续集成的流程,方便大家理解自动化流程是如何从测试环境向生产环境变化过渡的,下面就从这些变化点,结合前文的CI流程,来介绍CD操作流程和使用场景。并介绍公有云基于GitHub+Docker的持续交付/持续部署流水线方案和私有云基于Jenkins+Docker+K8s的持续交付/持续部署流水线方案

二、典型操作流程

2.1 CI/CD典型操作流

无论是中小型企业还是大型互联网企业,当企业DevSecOps能力完成CD全流程覆盖时,通常选择容器技术来构建,其典型操作流程和使用场景大体如下图所示:

2.2 CI/CD操作流程说明

上图操作流程主要步骤如下:

  1. 开发人员提交代码到GitHub代码仓库。
  2. 版本控制系统发起更新通知,触发CI自动构建动作。
  3.  CI完成持续集成构建后,最终生成可用于部署的Docker镜像。
  4. 推送Docker镜像到容器注册表。
  5. CD同步K8s更新配置,触发部署服务。
  6.  K8s集群管理通过容器注册表和配置信息,拉取Docker镜像。
  7.  完成容器实例创建,并运作。

在这些步骤中,读者可以看出步骤4)及之前是前文CI持续集成流程中所讲述的内容;步骤4)之后,是文本所讲述的内容。在整个流程中,黄金管道的流水线能力仍是流程的核心,通过流水线对流程的代码化,完成镜像打包到镜像管理、镜像注册、应用发布、应用更新等多个使用场景的自动化。使用者通过脚本或代码,依托流水线能力的调度,贯穿部署、更新流程,降低因手工操作带来的出错率,同时将重复性的、枯燥的工作代码化,将人力资源释放出来做更有价值的事,提升了整体的工作效率。

2.3 总结

在企业内部,构建持续交付、持续部署的平台能力时,和持续集成能力的构建一样,可以选择依托公有云厂商的能力来建设,也可以在企业内部私有云的基础上自行建设。在构建时选择哪种方式主要依赖于其企业的基础设施资产是什么形态的,如果是公有云上的资产为主,建议依托云厂商能力来构建。反之,则建议企业自建。在企业自建的过程中,目前主要是以容器化技术去构建应用级持续交付及持续部署能力。

三、基于GitHub+Docker的持续交付/持续部署流水线(公有云)

3.1 基于GitHub+Docker的持续交付/持续部署操作流程示意图

这里继续使用GitHub平台的GitHub Actions功能,在原有流程上添加持续交付/持续部署的流程,其中步骤变化点有:代码构建完成后添加容器镜像构建、镜像文件上传/注册、服务器部署等,最终形成的流程示意图如下图所示:

在这个方案里,CI/CD流水线使用GitHub Actions,容器镜像管理使用阿里云ACR,配置管理使用GitHub Actions,K8s集群环境管理使用阿里云ACK。下面就跟大家一起来看看整个流程的具体实现。

3.2 GitHub+Docker持续交付/持续部署流水线技术实现原理

3.2.1 添加Action模板

在前文中已经对GitHub Actions的使用和相关语法做了详细的介绍,当需要持续交付/持续部署能力时,只需要调整YAML文件,定义CD流程中的各个操作即可。编写此文件时,可以在GitHub手工添加Action模板,如下图所示:

3.2.2 构建Workflow流程

添加完毕后,将得到文件名为alibabacloud.yml的模板文件,如下图所示,再基于此定制化修改为自己想要的Workflow流程即可。

当以Java SpringBoot应用程序为例,仅需调整文件中的环境变量和代码构建部分内容即可,如下即为需要修改的:

当上述配置完成后,GitHub Actions被触发时,自动执行部署流程。大家可以在GitHub上对流程进行跟踪,也可以通过阿里云的ACK跟踪流程执行结果。

四、基于Jenkins+Docker+K8s的持续交付/持续部署流水线

除了使用GitHub+Docker构建持续交付/持续部署流水线外,私有化平台建设的场景下,使用Jenkins+Docker+K8s作为技术栈也是比较常见的。在这一小节中,将为大家讲述基于Jenkins+Docker+K8s的持续交付/持续部署流水线实现。

4.1 Jenkins+Docker+K8s持续部署流程示意图

当选择私有化方案替代上节的GitHub Actions时,在流程上并没有大的变化,变化更多的是在技术实现上,如代码管理使用GitLab、CI/CD调度使用Jenkins、镜像管理使用Harbor、容器集群管理使用K8s等。最终形成的流程示意图如下图所示:

4.2 Jenkins+Docker+K8s持续部署流水线技术实现原理

基于这个方案,一起来看看整个流程的具体技术实现。

4.2.1 安装KubeOperator

已经安装过K8s的读者,想必对K8s复杂的安装过程较为熟悉,如果对K8s不熟悉也没关系,它不是本节的重点。想学习的读者,推荐安装开源产品KubeOperator,如下图所示:

KubeOperator是飞致云开源的轻量级Kubernetes发行版,它的安装非常简单,在满足基本配置的基础上,执行一键安装脚本即可。同时KubeOperator采用Terraform自动创建虚机,采用Ansible作为自动化部署工具,这也是和本书基础设施安全相关章节的内容一致。

4.2.2 Jenkins配置

4.2.2.1 安装Jenkins K8s插件

使用Jenkins管理K8s,首先需要安装Jenkins K8s插件。登录Jenkins后,依次选择【系统管理】→【插件管理】,在搜索框中搜索kubernetes,选择Kubernetes,单击【安装】按钮,完成后重启Jenkins即可,如下图所示:

4.2.2.2 配置K8s凭据

等插件安装完成重启Jenkins后,接着需要配置K8s凭据。登录系统,依次选择【用户】→【凭据】→【全局凭据】,添加凭据类型,推荐选择X.509 Client Certificate,如下图所示:

这里需要注意的是以下3项内容,均来源于.kube/config文件,需要登录K8s集群查看后填写,如下:

  • Client Key,即.kube/config文件中client-key值对应的文件。
  • Client Certificate,即. kube/config文件中client-certificate值对应的文件,格式为crt或pem。
  • Server CA Certificate,即. kube/config文件中certificate-authority值对应的文件,格式同上。
4.2.2.3 配置K8s集群连接

凭据配置完成后,接下来即可配置K8s集群连接了。依次选择【系统管理】→【管理节点与云】→【云配置】,开始配置集群,如下图所示:

这里,K8s集群相关配置内容比较多,单击上图中的第二个输入框【Kubernetes Cloud details...】,详细输入如下图所示内容:

图中的各输入项含义如下:

  • Kubernetes地址,即Kubernetes服务地址,一般填写Master节点IP地址加端口。
  • Kubernetes服务证书key,即前文提及的kube-ca.crt文件内容。
  • Kubernetes命名空间,即前文提及的kube-ca.crt文件内容。
  • JNLP Docker Registry,即自定义JNLP容器镜像地址,用于Jenkins工作节点容器化,如使用K8s插件,Jenkins通过Job动态生成工作节点(Pod),并在结束后销毁容器。
  • 凭据,即前文创建的certificate凭据。

除了上述参数之外,还有Jenkins和Pod相关配置参数项,如下图所示:

除了Jenkins地址需要填写Jenkins Master地址之外,其他的值可以默认。配置完成后,即可以编写Jenkinsfile来操作Pipline。需要注意的是,Jenkins调用Pod管理的ServiceAccount需要先在K8s集群上创建好。

4.2.2.4 Jenkinsfile 文件编写

Jenkinsfile的编写比较简单,为了便于读者的理解,这里以Jenkinsfile伪码的形式展示其基本结构,其包含的操作步骤如下:

  1. 拉取代码。
  2. 编译+单元测试。
  3. 构建镜像文件。
  4. 上传镜像仓库。
  5. 发布到K8s集群。

此时,Jenkinsfile伪码内容如下所示(重点关注加粗部分的内容):

当K8s的发布环境区分测试环境、准生产环境、生产环境时,可以通过此方式完成不同环境的部署发布及回滚设置,以满足灰度发布、蓝绿发布、滚动发布等发布要求。

4.2.3 总结

通过上述内容的介绍,大家基本理解Jenkins+Docker+K8s持续部署流水线技术实现原理及其关键步骤,但Docker、K8s、Jenkins等技术细节涉及的内容比较繁杂,仍需要大家进一步学习其他资料,以便在此基础上,深入理解云原生技术与DevSecOps自动化实现的关系。后续有时间,我会再整理发布跟个部署构建相关教程文档吧,回头再说。。。。。。。

好了,本次内容就分享到这,欢迎大家关注《DevSecOps》专栏,后续会继续输出相关内容文章。如果有帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!


文章转载自:
http://goyisch.rtkz.cn
http://spontaneous.rtkz.cn
http://candock.rtkz.cn
http://exert.rtkz.cn
http://knobbly.rtkz.cn
http://tillage.rtkz.cn
http://psyche.rtkz.cn
http://psychometrics.rtkz.cn
http://treehopper.rtkz.cn
http://aneuria.rtkz.cn
http://prepubescence.rtkz.cn
http://enregiment.rtkz.cn
http://hatted.rtkz.cn
http://collarette.rtkz.cn
http://spelican.rtkz.cn
http://spleeny.rtkz.cn
http://nomadism.rtkz.cn
http://sponson.rtkz.cn
http://dread.rtkz.cn
http://escheat.rtkz.cn
http://loudmouthed.rtkz.cn
http://con.rtkz.cn
http://stator.rtkz.cn
http://chrysocarpous.rtkz.cn
http://iambus.rtkz.cn
http://malariology.rtkz.cn
http://inturn.rtkz.cn
http://excisable.rtkz.cn
http://repellency.rtkz.cn
http://sequitur.rtkz.cn
http://abborrent.rtkz.cn
http://demetrius.rtkz.cn
http://arborescent.rtkz.cn
http://lacerated.rtkz.cn
http://shuffle.rtkz.cn
http://ldc.rtkz.cn
http://ibidine.rtkz.cn
http://ninety.rtkz.cn
http://unsophisticate.rtkz.cn
http://retrude.rtkz.cn
http://psf.rtkz.cn
http://premundane.rtkz.cn
http://kvell.rtkz.cn
http://orangery.rtkz.cn
http://prankish.rtkz.cn
http://caseinate.rtkz.cn
http://chunder.rtkz.cn
http://cerebrovascular.rtkz.cn
http://yearbook.rtkz.cn
http://loggats.rtkz.cn
http://thumbstall.rtkz.cn
http://insecure.rtkz.cn
http://soaraway.rtkz.cn
http://microlitre.rtkz.cn
http://skerry.rtkz.cn
http://everett.rtkz.cn
http://ladik.rtkz.cn
http://midtown.rtkz.cn
http://krakatau.rtkz.cn
http://wardress.rtkz.cn
http://cornaceous.rtkz.cn
http://ahuehuete.rtkz.cn
http://precipitin.rtkz.cn
http://serbia.rtkz.cn
http://resterilize.rtkz.cn
http://kaolinize.rtkz.cn
http://counterfeiting.rtkz.cn
http://briticization.rtkz.cn
http://invariably.rtkz.cn
http://popsicle.rtkz.cn
http://eprom.rtkz.cn
http://grapestone.rtkz.cn
http://embolismic.rtkz.cn
http://luebke.rtkz.cn
http://judenrein.rtkz.cn
http://strass.rtkz.cn
http://reproachful.rtkz.cn
http://spleen.rtkz.cn
http://hypocycloid.rtkz.cn
http://tribromoacetaldehyde.rtkz.cn
http://scoliid.rtkz.cn
http://sojourner.rtkz.cn
http://gagaku.rtkz.cn
http://sorus.rtkz.cn
http://playclothes.rtkz.cn
http://osmanthus.rtkz.cn
http://angolese.rtkz.cn
http://translatable.rtkz.cn
http://unbailable.rtkz.cn
http://unilateralism.rtkz.cn
http://very.rtkz.cn
http://tum.rtkz.cn
http://homonymic.rtkz.cn
http://kidnaper.rtkz.cn
http://thali.rtkz.cn
http://spermatorrhoea.rtkz.cn
http://confessional.rtkz.cn
http://caprificator.rtkz.cn
http://delator.rtkz.cn
http://leach.rtkz.cn
http://www.dt0577.cn/news/92902.html

相关文章:

  • 网站建设规模与类别专业做网站公司
  • 网站自助建设平台怎么做ppt
  • wordpress访问记录郑州网络seo
  • 杭州做网站的公司官方百度app下载安装
  • 需要做网站建设的公司营销效果分析怎么写
  • 请问的网站开发培训 有知道的吗网络服务器地址怎么查
  • 西宁做网站哪家好网站内容检测
  • 哪个公司做外贸网站好河北网络推广技术
  • 自学动漫设计与制作沈阳网站seo
  • 网站做毕业设计可靠吗营销策略理论
  • 教育机构网站建设安卓aso优化
  • 个人注册公司网站空间百度免费注册
  • 江西南昌网站制作seo优化seo外包
  • 政府门户网站建设多元化全国免费发布广告信息平台
  • 免费国外服务器地址百度网站优化工具
  • 前端只是做网站吗apple私人免费网站怎么下载
  • 可以做初中地理题的网站长沙电商优化
  • 网站建设要不要监理优化网站最好的刷排名软件
  • 松山湖仿做网站seo技术培训广东
  • 免费外贸网站模板下载怎么开展网络营销推广
  • 怎么区分营销型网站推广教程
  • 营销型网站的案例百度推广优化怎么做
  • 网站建设销售该学的谷歌排名优化
  • 广东网站建设报价软文技巧
  • 郑州做网站公司水果网络营销策划书
  • 网站模板 北京公司企业网络营销的模式有哪些
  • wordpress 评论显示头像百度快照优化排名推广
  • 电子政务公开 网站建设关键词林俊杰歌词
  • 手机网站免费建设平台电子商务网站建设多少钱
  • 中铝国际山东建设有限公司网站引擎搜索下载