18 Kubernetes CI / CD将改变你的DevOps游戏的工具

Kubernetes CI / CD是什么?

Kubernetes是一个开源的编排平台与一组丰富的功能,让您构建、测试和部署集装箱的应用程序。Kubernetes自动化许多软件配置流程。当加上一个持续集成和持续交付(CI / CD)过程,Kubernetes-driven自动化可以缓解和加速软件版本。

Kubernetes CI / CD管道可以将自动化引入到其他领域的关注之前手动执行或由第三方。例如,您可以配置Kubernetes自动监控和响应中断,提高服务器的利用率。

您可以创建一个Kubernetes CI / CD管道通过集成Kubernetes CI / CD的工具。例如,您可以使用詹金斯X或Gitlab持续集成,和工具像海洋CD, GoCD或ArgoCD持续交付。我们将讨论这些和更多的工具,可以帮助您升级您的DevOps游戏并开始练习Kubernetes CI / CD。

本文简介:

  • 为你的CI / CD Kubernetes管道的好处
  • Kubernetes CI工具
    • 詹金斯X
    • CircleCI
    • 特拉维斯
    • GitLab社区版
    • GitHub的行为
    • Tekton
    • Azure管道
    • AWS CodePipeline
  • Kubernetes CD工具
    • 海洋CD
    • GoCD
    • 大三角帆
    • 阿尔戈CD
    • FluxCD
    • 利用
    • 野生鸢尾花

为你的CI / CD Kubernetes管道的好处

CI / CD管道旨在迅速和经常自动更新应用程序。这里有几种方法Kubernetes可以改善你的CI / CD管道:

  • 减少释放时间——手动CI / CD过程会导致各种问题,延迟生产时间表。例如,它可能导致code-merge碰撞和进一步扩展的时间表当顾客需要等待更新和补丁。Kubernetes可以帮助您自动化这个过程。
  • 监测和响应中断电力中断和意想不到的流量峰值,随时可能发生。您可以使用Kubernetes监视环境的快速学习和纠正这些问题,以确保您的应用程序继续运行。
  • 提高服务器的使用效率不拥挤的有效应用到服务器可以导致容量费用开销增加。这个问题会出现应用程序是否运行本地或在云中。Kubernetes可以帮助你最大限度地提高服务器的使用效率,确保最佳的使用和费用。
  • 代理的代码-Kubernetes帮助你运行应用程序在应用程序容器,确保所有必要的库和资源。雷竞技rabet官网您可以利用集装箱化应用程序移植,容易复制,和高度可伸缩的。
  • 安排部署-Kubernetes促进一个更简单的部署过程。Kubernetes可以帮助您部署您的应用程序,监控容器的卫生,和规模来满足需求的变化。

Kubernetes CI工具

这里有几个CI工具你可以与Kubernetes集成:

詹金斯X

詹金斯CI / CD是一个非常流行的开源平台用Java编写的。它提供了几个版本和各种插件和功能旨在帮助您构建、测试和部署您的项目。企业在全球范围内对持续集成和自动化使用詹金斯。

詹金斯X是一个新的迭代的詹金斯旨在支持云Kubernetes本机应用程序。Jenkins-X促进快速部署新的Kubernetes项目通过各种功能,如预览环境,GitOps和自动化CI / CD。

CircleCI

CircleCI是一个基于云的持续集成和交付工具,提供了一个API,用于自动Kubernetes部署。该工具不需要专用的服务器和雇佣了几个测试方法来测试所有代码更改之前的部署。例如,CircleCI允许您运行单元,功能和集成测试。然而,CircleCI不提供所有功能需要建立一个CD管道。

特拉维斯

特拉维斯是一个基于云的持续集成工具,它可以自动构建和测试代码更改。一旦你注册,特拉维斯允许您链接存储库,构建和应用程序。你可以用流行的云存储库,将特拉维斯Bitbucket都和GitHub等。

特拉维斯在云中托管,不需要一个专用的服务器。您可以使用它来测试在不同的机器上运行不同的操作系统。这个工具是免费的开源项目。商业项目可以购买一个企业计划。

GitLab社区版

GitLab DevOps平台,允许您开发、运营和安全代码。GitLab提供所有功能在一个应用程序,简化DevOps的过程。您可以使用GitLab构建、测试和部署代码。

GitLab可以与Kubernetes集成,使您能够监控Kubernetes集群和控制所有工件的部署。它提供了一个汽车DevOps功能,创建一个CI / CD管道基于你独特的技术堆栈。GitLab然后在Kubernetes集群自动部署应用程序。

GitHub的行为

GitHub的行动是一个CI / CD自动化平台构建、测试和部署管道。它允许您创建工作流来构建和测试每个拉请求到GitHub库。它还允许你合并请求并将它们部署到生产环境。

GitHub允许您在Windows上运行工作流,macOS和Linux虚拟机(vm)。另外,GitHub的行为让你主人跑步者在云基础设施或数据中心。

Tekton

Tekton Kubernetes-native开源框架你可以使用它来创建CI / CD系统。您可以部署和配置Tekton声明到现有Kubernetes集群。这个框架还可以集成到您的现有CI工具。

Tekton的Kubernetes-native架构有助于使CI / CD管道移动,确保它们可以跨多个云供应商的功能和位置。您可以使用框架来规范和共享工作流跨团队以声明的方式。

Azure管道

Azure管道可以自动构建、编译和部署代码同时在多个环境中。它提供的功能对CI和CD,可以无缝集成Azure的部署。

服务支持许多编程语言,包括Java、Python、去,节点。js、JavaScript、。net、XCode和c++。可以整合Azure管道GitHub, Bitbucket都Azure回购,Subversion和其他版本控制系统。

相关内容:阅读我们的导游Azure CI / CD(很快)

AWS CodePipeline

AWS CodePipeline CI / CD是一个基于云计算的服务模型,可视化和自动化发布软件所需的所有步骤。它允许您定义管道阶段获取的代码从源代码存储库和构建源代码可发表的神器。

您可以使用CodePipeline测试这个工件。CodePipeline仅部署代码,成功地通过所有预定义的阶段。服务允许您添加额外的需求,比如手动批准,您的管道。

Kubernetes CD工具

这一组包括工具,使与Kubernetes持续交付。

海洋CD

海洋CD是一个Kubernetes-native解决方案。它专注于最困难的部分现代应用程序交付通过自动化验证和关键任务部署流程。与海洋的CD,开发人员可以把代码,同时DevOps维持SLOs和治理。

这里有一些海洋CD的关键特性:

  • 完成验证和自动化部署堵DevOps可以有信心部署可靠性,因为海洋CD验证和控制部署,顺利和在需要时回滚,所以代码可以部署到生产环境中。
  • 版交付方法发布管理相关管理费用减少海洋CD的开箱即用的进步的交付方法。这些策略使它简单的用户执行部署。开发人员现在有能见度在每一个交付阶段,因此整个CD过程。
  • 基于容器的基础设施当采用海洋,用户利用容器驱动基础设施,可以自动扩展坚持应用需求在部署过程中,优化云基础设施成本和操作。

GoCD

GoCD是一个开源工具作为服务器运行。这个构建工具允许您构建CI / CD开发管道。你可以用它在处理复杂的工作流。

这里有一些GoCD的关键特性:

  • 构建一个完整的持续交付(CD)管道,使安全、自动部署到生产环境。
  • 使用一个infrastructure-as-code (IaC)的方法,允许您定义每个管道使用声明式配置基于YAML或JSON。这允许您管理和重用跨多个软件项目的管道。
  • 管道运行在并行和顺序,可配置的依赖关系。
  • 提供了一个视图的整个工作流从开发到生产;管理一个特性从第一个通过价值流程图提交最终的部署。
  • 使用一个插件架构。GoCD是灵活的,提供一个生态系统的插件,让你建立你自己的。

大三角帆

大三角帆首先由Netflix是一个开源的工具。这个持续部署工具支持Kubernetes集成了大三角帆的官方供应商。配置之后,大三角帆读取整个集群和介绍所有可用的应用程序。

使用大三角帆,您可以创建部署管道发起一个新的码头工人形象或CI工具。配置Kubernetes之后,您可以很容易地部署新服务集群中。

阿尔戈CD

阿尔戈CD是一个开源的、声明、GitOps Kubernetes持续交付工具。它利用Git存储库保留Kubernetes应用程序的状态和跟踪应用程序——一个过程称为GitOps。它可以同步集群所需的状态,按照Git配置。

这个过程可以让你保留多个期望状态Kubernetes应用程序的使用标签或分支。它还允许您通过一个Git提交销清单版本。这种方法提供了一个灵活的环境监督Kubernetes配置在整个开发过程。

阿尔戈号电是一组Kubernetes控制器和crd提供先进的进步部署特性,比如蓝色/绿色部署,金丝雀部署和实验。

阿尔戈糊涂事可以与输入控制器和集成服务网格,用流量匹配特性逐步流量切换到新版本中更新。电也可以查询和解释来自不同提供者来验证kpi指标,可以确保正常工作部署。基于这些kpi,它可以自动更新或回滚软件版本。

FluxCD

通量自动确保集群的状态= Git的配置。它在Kubernetes启动部署,整合直接与集群控制器。这里有一些通量的主要特点:

  • 监督所有适用的映像存储库,确定新的图像,并开始部署。
  • 根据部署更新所需的运行配置(并根据策略配置)。
  • 不需要CI访问集群——每一个变化是事务和原子和Git保留你的审计日志。
  • 完全以代码为中心,应用到现有的基础设施不需要依赖其他工具。

利用

利用是一个软件交付平台。主要特点包括:

  • 让工程师部署到生产和按需通过UI管道建造者。
  • GitOps能力,所以团队可能引用一个或多个Git分支和存储库。
  • 支持传统和云本机工作负载包括舵,容器,Kubernetes, Serverless ECS和web服务器栈,如WebSphere或WebLogic。
  • 触发管道基于Git事件如“提交”和“新工件版本”

利用提供了开箱即用的支持:

  • 第三方保密管理工具包括CyberArk和HashiCorp库
  • 缺陷跟踪和票务ServiceNow和JIRA的工具
  • 监控工具像DataDog, New Relic,普罗米修斯

野生鸢尾花

野生鸢尾花是一个进步的交付工具。这个工具自动释放活动Kubernetes上运行的应用程序。它降低了风险在生产中引进一个新的软件版本的慢慢的流量转移到新版本,而运行的一致性测试和测量指标。

野生鸢尾花使用不同的部署方法(A / B测试,金丝雀释放,蓝/绿监控)通过公共服务网格平台(Istio、应用网、开放服务网格,Linkerd)或一个入口控制器(Traefik Gloo,轮廓,队长)路由流量。

发布监控、野生鸢尾花可以查询Datadog监测,普罗米修斯,新的遗迹,InfluxDB, Stackdriver, Dynatrace。不和谐,它集成了女士团队,谷歌聊天,松弛,火箭警报。

Baidu
map