首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码即部署,基于KCL语言和ArgoCD的一栈式GitOps流

在云时代,什么最重要?当然是数据!什么是数据?代码即数据,代码即配置!但是说起来容易,做起来还有一定屏障。本文,虫虫大家介绍一种通用的方法和流程,借助开源云原生GitOps工具链,实现“代码即配置,配置即部署”一栈式流程。

开发人员和运营团队可以通过修改KCL代码,然后生成YAML文件来管理应用程序部署和配置。借助 GitOps工具链会自动将更改同步到Kubernetes集群,从而实现持续部署并确保一致性。如果出现问题,可以使用GitOps工具链快速回滚。

概述

KCL

KCL是一个开源的基于约束的记录及函数语言。KCL通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生Kubernetes配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。KCL可用于生成低级静态配置数据,如JSON、YAML等。

通过模式建模减少配置数据中的样板文件。

义配置数据和模板的转换器和约束,并自动改变/验证它们。

可扩展地组织、简化、统一和管理大型配置,而不会产生任何副作用。

用作平台工程语言,通过KusionStack交付现代应用程序。

KCL可以帮助我们简化复杂的Kubernetes部署配置文件,降低手动编写YAM文件的错误率,提高代码的可读性和可维护性。

GitOps

GitOps是一种进行持续交付的现代方式。其核心思想是拥有一个包含环境和应用程序配置的Git存储库。还需要一个自动化流程将配置同步到集群。通过更改存储库中的文件,开发人员可以自动应用应用程序。应用GitOps的好处包括:

提高生产力。持续交付可以加快部署时间。

降低开发者部署门槛。通过推送代码而不是容器配置,开发人员可以轻松部署 Kubernetes,而无需了解其内部实现。

追踪变更记录。使用Git管理集群使每个更改都可追踪,从而增强了审计跟踪。

通Git的回滚和分支来恢复集群。

ArgoCD

ArgoCD可以自动化部署Kubernetes应用程序,实现持续部署,并提供完善的监控功能。

通KCL和ArgoCD的结合,可以提高部署效率,减少错误,并加强对Kubernetes应用程序的管理和监控。

KCL和ArgoCD的结合还可以帮助我们实现基础设施即代码(IaC),简化应用程序部署和管理,更好地落实DevOps原则。

基本工作流

示例

首先,以kcl官方示例为例子,首先下载官方示例:

可以运行以下命令来显示配置。

cat conf/main.k,其内容如下

在上面的代码中,我们使用以下命令定义了一个配置Appschema,在其中配置了一个 gcr.io/heptio-images/ks-guestbook-demo:0.2容器并配置它 80服务端口。

安装Kubernetes和GitOps工具

安装K3d(不在详述),并以其为基础创建默认集群。

安装ArgoCD

启用ArgoCD KCL插件

编写补丁YAML配置文件并更新ArgoCD配置:

完成第一步后,ArgoCD将会自动识别KCL插件,但KCL插件尚未加载到ArgoCD镜像中。为了实现配置漂移检测,必须调整argocd-repo-server的部署。

然后,等待init容器完成执行(运行)

访问ArgoCD Web UI

打开浏览器并输入 localhost:8080 ,访问

用户名是“admin”,通过以下命令行获取默认密码:

设置ArgoCD CLI

安装 ArgoCD CLI

使用“admin”和密码登录ArgoCD

创建 ArgoCD 应用程序

如果使用的是git私有库,则需要在执行create命令之前使用私钥凭据配置私有存储库访问权限。

创建成功后,可以看到如下输出:

通过ArgoCD UI,可以看到创建的应用程序尚未同步。

在该界面还可以手动同步或设置自动同步。

总结

本文我们介绍了,通过强大的GitOps结合KCL轻松管理K8S集群中的应用程序和配置的典型示例,通过示例我们学习了GitOps应用通用流程和配置,结合该示例大家可以拓展自己的应用场景和环境,实现真正的一栈式,“代码即配置,配置即部署”。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OllFl4MNjX-XmidsbauI6rgQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券