在存在的6年中,Kubrnts一直是CloudNativ景观的核心,提升了可插拔系统,为整个生态系统的多元化做出了贡献。结果,该行业已经开发了多个领域,为诸如网络,运行时,存储以及群集配置之类的组件提供了镀锌解决方案。集群API是跨公共云基础架构管理中的关键工具之一,它为Kubrnts发行提供了独特而激进的立场。与诸如GitOps之类的模型相关联,ClustrAPI组合了一种机制,该机制利用了群集作为资源的概念。
这篇博客文章旨在概述如何使用ClustrAPI清单对ClustrOps进行建模,以及如何使用GitOps工具(例如ArgoCD和Flux)自动进行操作。
理论上在创建集群方面,已经采用了许多解决方案和发行版来简化跨云提供商的Kubrnts引导过程。但是,在开放源代码领域中脱颖而出的工具之一是ClustrAPI,因为它为现有供应商(例如GCP,AWS,Azur,阿里巴巴云,Packt)之间的平台创建提供了一个通用接口。
ClustrAPI将基础架构定义简化为两个清单,从而充分利用了Kubrnts构建块或CRD。自最新版本(v1alpha3)起,ClustrAPI引入了5种自定义资源:集群APICRD
集群-包含基础架构提供商创建Kubrnts集群所需的详细信息(例如,用于Pod,服务的CIDR块)ControlPlan—概述了Kubadm的声明性控制平面生命周期管理机制机器—封装了Kubrnts节点的配置(例如kublt版本)MachinSt-确保始终启动并运行所需数量的计算机资源(类似于RplicaSt)MachinDploymnt—通过在MachinSt配置之间采用可靠的部署策略来协调对Machin资源的更改(类似于Dploymnt)因此,概述了一个新概念,将群集标识为自定义资源(CaaCRD或CaaR)。使用ClustrAPI,将使用CRD概述Kubrnts控件和数据平面并将其存储为YAML清单。
平台生成的下一个有机步骤是模板和自动化。默认情况下,可以对一组清单进行参数设置并与Hlm和Kustomiz打包在一起。这使跨不同区域和云提供商的具有预定义技术要求的集群得以定制。另外,值得一提的是,将现有清单,图表和模板存储在git存储库中是一种很好的做法。这可以解锁GitOps工具的集成,从而解决了集群生成的自动化部分。由ClustrAPI和ArgoCD表示的具有GitOps的ClustrOps
GitOps是一种应用程序交付机制,具有git存储库来表示所需的应用程序状态。这表明,IDE和集群部署之间的差异仅在PR之外。GitOps与数据自动调节相关联,这意味着它具有拉动系统,始终监视新提交。Flux(CNCF沙箱项目)和ArgoCD(CNCF孵化项目)展示了GitOps的流行实现。实用的既然已经强调了所有技术概念,那么下一步就是将所有这些组件都放在同一个画布中。以下示例旨在概述有关如何使用ClustrAPI和ArgoCD在AWS中创建Kubrnts集群的指南。
要设置集群API,需要一个管理集群,可以使用Kind(Kubrnts的dockr化版本)创建管理集群。一旦满足此要求,就可以初始化控制器管理器:#cratmanagmntclustrkindcratclustr--namdmo#initializthmanagmntclustr##Not:clustrctlwillndtobinstalldbforhand##ToprparthnvironmntforK8sprovisioningonAWS#followthguidhr: