Kubernetes 原生 CI/CD 管道入门

云计算
为 Kubernetes 设置 CI/CD 具有挑战性。在此博客中,作者介绍了使用 Devtron 创建 k8s 原生 CI/CD 管道的过程。
为 Kubernetes 设置 CI/CD 具有挑战性。在此博客中,作者介绍了使用 Devtron 创建 k8s 原生 CI/CD 管道的过程。

为 Kubernetes设置CI/CD 管道很复杂。设置后,当您的团队和基础架构快速增长时,管理 CI/CD 会变得非常具有挑战性。高效且完全自动化的 CI/CD 在确保您更快地交付功能方面发挥着重要作用。通过利用 CI/CD,您可以保证应用程序团队更快地交付功能,同时确保代码库的最佳实践。

在这篇微博中,我们将看到使用 Devtron 创建和管理 CI/CD 管道是多么容易,但在此之前,让我们快速回顾一下 CI/CD。

什么是 CI/CD?

CI 代表“持续集成”,这是我们验证和测试开发人员推动的更改的阶段。它是您运行所有测试用例的地方,即单元测试和集成测试。在我们验证和测试代码库之后,我们可以在此步骤中构建软件工件;例如,我们可以构建一个容器镜像,或者它可以是一个二进制可执行文件。

CD 代表“持续交付”,即您在自动化过程中将软件工件推送到生产/暂存环境。在这种情况下,在构建容器镜像并将其推送到容器注册表后,我们在 Devtron 的帮助下将相同的镜像部署到 Kubernetes 集群中。

什么是 Kubernetes 原生 CI/CD?

Kubernetes 本机 CI/CD 通过成为 Kubernetes 集群的一部分来利用软件交付工作流。使用 Kubernetes 原生 CI/CD 的好处是您的构建步骤将在 pod 内发生,您不需要为 CI 在外部配置或连接任何其他计算资源。从安全角度来看,建议使用此方法,因为我们所有的机密和外部凭证都在集群中。

Kubernetes 原生 CI/CD 与 Devtron

当您使用 YAML 管理管道时,您需要编写工作流并反复更新它。了解 YAML、检查构建过程、学习不同的 Linux 命令、手动部署代码以及学习 Kubernetes 对开发人员来说都很难。他们需要直观、简单且不需要领域专业知识的东西。即使您不太了解 Kubernetes,您也应该能够开发、执行和触发您的构建和部署。

这就是我们试图使用 Devtron 解决的问题。它为您提供了一个直观的仪表板,可帮助您在 Kubernetes 上快速设置和管理 CI/CD 管道。让我们安装 Devtron 并为我们的应用程序设置一些 CI/CD 管道。

Devtron 的安装请参考安装文档。安装 Devtron 后,我们将端口转发 Devtron 服务以获取仪表板 URL,因为我们将它安装在本地机器上。

kubectl -n devtroncd port-forward service/devtron-service 8000:80 &

在此之后,您应该能够访问 上的 Devtron 仪表板localhost port 8080。

为了演示 CI/CD 管道,让我们使用Devtron 在 GitHub 存储库上提供的nodejs 演示应用程序。

得到这个之后,你需要为你的应用程序设置全局配置。要设置全局配置,请参阅文档。

第 1 步:启用 GitOps

要启用 GitOps,请转到全局配置,然后使用任何 Git 提供程序进行身份验证。在我们的案例中,我们使用了 GitHub。建议为所有 GitOps 配置创建一个新的 GitHub 组织。

第 2 步:创建应用程序

现在让我们继续在 Devtron 上创建我们的第一个应用程序。提供应用程序名称,即demo-application,为其分配一个项目devtron-demo,即,然后单击Create App。

第 3 步:添加 GitHub 存储库和构建配置

下一步是添加托管源代码的 Git Repo URL。如果要部署私有存储库中的应用程序,请浏览Git 帐户文档。

现在,一旦我们设置了存储库,我们就需要设置构建配置。构建配置是拉取和推送容器镜像所必需的。您可以更改注册表以使用 docker、ECR、GCR 等,这些可以从Global Configurations 下的容器注册表进行配置。

我们现在已经集成了Buildpacks它,您可以直接从您的代码构建符合 OCI 标准的容器镜像。

如果你想构建一个特定于平台的镜像,那么你可以在Build Configurations.

第 4 步:配置基础部署模板

基础部署模板是所有魔法发生的地方。Devtron 显示了一个细粒度的配置,抽象出所有 Kubernetes 配置的复杂性并将模板打包在一个 helm chart 中。部署模板包含生产级微服务所需的几乎所有主要配置,并带有两个显示选项——基本(GUI 模式)和高级(YAML 配置)。

您可以配置ContainerPort、设置Requests & Limits部署、提供Environment Variables等。还有一个高级选项,您可以从中获取详细的 YAML 配置,Devtron 将在部署期间使用这些配置并覆盖它们。下面是部署模板的概览。

只需在预定义模板中进行一些调整,您就可以配置Horizontal Pod Autoscaling、Ingress、Security Context、Keda Autoscaling以及Volume Mounts更多 Kubernetes 配置。使用 Devtron 的部署模板,您不必担心为您的 Kubernetes 配置编写大量的 YAML 文件。

第 5 步:创建和触发 CI/CD 管道

配置部署模板后,您就可以构建 CI/CD 工作流了。让我们继续配置持续集成。要了解有关创建管道的不同方式的更多信息,请随时阅读工作流编辑器文档。在此示例中,我们将从 Devtron Dashb 构建和部署

现在,让我们创建CI Build Pipeline并配置管道详细信息。在 CI 管道中,您可以配置vulnerabilities scanning, pre/ post build stages, 给source typeie, Branch Fixed, Regex, Pull Request 或 Tag Creation 来构建图像,等等。

现在在创建构建管道之后,让我们创建Deployment Pipeline. 使用+同一页面上的图标添加您的部署管道。使用 Devtron,您可以根据需要创建任意数量的管道,无论是顺序管道还是从同一构建部署到多个环境。

Deployment Pipeline您可以在pre/ post deployment stages其中配置开箱即用的集成deployment strategies,即 Rolling、Recreate、Blue-Green 和 Canary。它还允许您为同一应用程序中的不同环境选择不同的部署策略。默认部署策略Rolling如下图所示。

在这篇博客中,我们将继续Blue-Green deployment strategy。您可以检查部署策略配置并根据您的用例进行更改。此配置更改适用于所有其他部署策略。

配置 CI 和 CD 管道后,整个管道如下所示。我们可以为不同的环境创建具有不同配置的多个工作流程,并在同一应用程序中构建类型。

是不是很有趣!!

现在管道已创建,我们需要触发我们的管道,为此我们必须转到 部分Build & Deploy。

要构建图像,请单击Select Material->Select the Commit您要构建的图像 -> 单击Start Build。

构建启动后,我们可以检查构建过程的日志,当构建成功时,我们可以在工件部分验证构建的图像。它还允许您检查以前的构建,以及仪表板中所需的所有必要审计信息,如下图所示。

让我们触发部署管道。select image构建流水线成功后,页面会有一个选项Build & Deploy。选择图像,然后单击“部署”。我们还可以检查启动部署所针对的提交和安全详细信息。部署开始后,Devtron 会为您提供所有阶段的详细信息以及针对每个部署的 K8s 配置。同样在 CD 管道中,我们获得了有关部署的所有审计信息,如下图所示。

第 6 步:应用详情

部署应用程序后,您可以在App Details. 可以从选项卡轻松监控有关您的工作负载和应用程序指标的所有健康相关信息App Details。

成功部署应用程序后,它会为您提供有关应用程序的所有信息的 360 度视图,并允许您执行不同的 pod 操作,例如view logs、exec into terminal、check manifests,events还附带Logs Analyzer允许 grep 多容器日志。它还以分组方式显示与特定应用程序关联的所有 Kubernetes 资源,这对于调试和可观察性非常方便。

结论

在此博客中,我们了解了 Kubernetes CI/CD 以及如何使用 Devtron 在短短 3 分钟内轻松设置所有最佳实践和 GitOps。快速 Kubernetes CI/CD 设置的主要好处之一是它可以通过自动化构建和持续测试代码库来加快整个发布过程。开发人员无需手动构建和测试。快速、可靠和高效的 Kubernetes CI/CD 将带来更好的产品和更快乐的用户。

责任编辑:华轩 来源: 今日头条
相关推荐

2022-02-22 09:00:00

软件开发CI/CD 管道工具

2021-07-02 16:30:01

CICDDevOps

2020-12-15 16:13:21

DevSecOpsCICD

2023-01-30 15:55:08

2023-02-19 15:28:39

CI/CD 管道集成开发

2022-05-19 09:00:00

安全CI/CD工具

2021-05-13 18:23:53

Tekton云原生Kubernetes

2023-05-24 16:20:39

DevOpsCI/CD 管道软件开发

2018-08-24 09:00:00

DevOps持续集成连续部署

2019-07-25 10:31:55

AWSDevOps架构

2021-08-31 09:00:00

开发Azure DevOp集成

2023-04-18 08:17:11

GitLab持续集成

2021-06-09 05:44:45

云原生 CICD

2021-01-21 06:06:30

Jenkins分支管道CI

2021-03-31 09:00:00

管道集成工具

2021-05-18 08:00:00

Kubernetes容器进程

2021-09-26 09:26:46

开发安全CICD管道

2020-10-21 14:10:28

工具测试开发

2023-05-09 16:20:54

蓝绿部署CI/CD 管道自动化部署

2021-07-28 13:23:32

CICD管道安全漏洞
点赞
收藏

51CTO技术栈公众号