当前位置: 首页 > 科技观察

HelmChart多环境、多集群交付实践,透视资源拓扑及差异

时间:2023-03-22 12:03:50 科技观察

HelmCharts[1]是现在非常流行的一种软件打包方式,在它的应用市场你可以找到近万种适合云原生环境的模型软件。那么在今天的混合云多集群环境下,业务越来越依赖部署到不同的集群,不同的环境,同时指定不同的配置。在这样的环境下,仅仅依靠Helm工具可能无法实现灵活的部署和交付。在本文中,我们将介绍如何使用KubeVela[2]来解决HelmChart在多集群环境下的部署问题。如果你手上没有多集群也没关系,我们将介绍一种只依赖Docker或Linux系统的轻量级部署方式,让你轻松体验多集群功能。当然,KubeVela也完全具备单集群HelmChart交付能力[3]。先决条件安装Dockerv20.10.5+(runc>=v1.0.0-rc93)或者您的操作系统是Linux。VelaD[4],用于部署KubeVela和Kubernetes的轻量级工具。准备集群这部分是准备KubeVela和多集群环境。我们将基于Docker或Linux环境从头开始。如果您已经有KubeVela环境,并且已经完成集群管理[5],则可以跳过本节。安装KubeVela控制面veladinstall将新建的集群导入环境变量exportKUBECONFIG=$(veladkubeconfig--namedefault--host)到此,恭喜!我们已经完成了KubeVela控制平面的安装。您可以通过以下方式加入您的Kubernetes集群:velaclusterjoin--namefoo如果您没有现有的Kubernetes集群,VelaD也可以轻松地为您创建一个:使??用velad创建一个名为foo的集群并将其加入控制平面veladinstall--namefoo--cluster-onlyvelaclusterjoin$(veladkubeconfig--namefoo--internal)--namefooasafullyscalablecontrolFlat,mostKubeVela的功能以插件形式提供。在接下来的几个步骤中,我们将描述为Helm多集群部署安装必要的插件。启用velaux插件获取UI控制台velaaddonenablevelaux启用fluxcd插件获取helmchart投递能力velaaddonenablefluxcd如果在加入新集群前启用了fluxcd插件,新加入的集群需要启用fluxcd插件通过以下方式(部署)插件:velaaddonenablefluxcd--clustersfoo至此,我们已经完成了所有的准备工作,可以查看加入的集群:$velaclusterlsCLUSTERALIASTYPEENDPOINTACCEPTEDLABELSlocalInternal-truefooX509Certificatehttps://172.20.0.6:6443truelocal是KubeVela控制面的集群,foo是我们刚刚添加的集群。对于多集群部署,我们可以使用拓扑策略指定HelmChart下发的环境,命令如下:cat<Cluster:foo|命名空间:默认|种类:HelmRelease|名称:你好集群:本地|命名空间:默认|种类:HelmRelease|名称:hello选择带有foo簇的选项,然后您会看到结果已被新消息覆盖$curlhttp://127.0.0.1:8080/...snip...WelcometoYourNewFooCluster!

为不同的环境指定不同的值文件您可以为不同的环境选择HelmChart中存在的不同值文件。示例:确保您的本地集群有两个命名空间“test”和“prod”,它们代表我们示例中的两个环境。我们以Charthello-kubernetes-chart为例。此图表有两个值文件。你可以拉这个Chart并查看它包含的所有文件:$tree./hello-kubernetes-chart./hello-kubernetes-chart├──Chart.yaml├──templates│├──NOTES.txt│├──_helpers.tpl│├──config-map.yaml│├──deployment.yaml│├──hpa.yaml│├──ingress.yaml│├──service.yaml│├──serviceaccount.yaml│└──test│└──test-connection.yaml├──values-production.yaml└──values.yaml我们可以看到这个Chart中有两个Value文件,values.yaml和values-production.yaml。猫<
最新推荐
猜你喜欢