flux在k8s集群中的应用

本文介绍了云原生GitOps工具Flux的基本概念、部署流程和使用场景,对比Argocd,Flux更侧重于底层组件维护和轻量级服务。通过步骤详细展示了如何从Helm开始部署,以及如何利用代码仓库实现持续部署。
摘要由CSDN通过智能技术生成

前面也有给大家讲解过云原生gitops工具-argocd(介绍篇/部署管理篇/应用篇),今天再给大家介绍另外一种gitops工具的明星产品-flux。

对于这两款工具,主要还是看个人使用习惯和上手程度,argocd在web端更便于研发/运维快速使用,同时强大的对多集群管理和项目管理、角色限制、多环境管理等都有不错的体验,但同时也就带来了一些操作的复杂性。相反对于flux而言,如果不想要那么多的高级功能,仅仅是对底层基础组件的维护,flux也是一个不错的选择,而且服务的轻量级也更低的消耗资源。总之这两款工具还是不错的,推荐大家使用哈。

flux介绍

Flux是一个在git中可以自动明确集群状态和匹配配置的工具。它可以用在操作Kubernetes集群中来触发deployment,这就意味着你不再需要单独的CD工具。在此基础上(以及可配置的策略)它可以监控仓库、检测镜像、触发deployment以及更新所需的运行配置。

好处就是你不需要授予集群的CI访问权,每一个更改都是原子的和事务性的,git已经有了审计日志。每个事务要么失败,要么成功。你完全以代码为中心,不需要新的基础设施。

flux可以做什么?

Flux在用作连续交付管道末端的部署工具时最有用,并确保将新的容器镜像和配置变更更新到集群中。

从helm开始用flux

前置条件:

  • Kubernetes >= v1.11
  • helm v3(https://github.com/helm/helm/tags)
  • flux-project( https://github.com/fluxcd/flux-get-started)
  • Flux CLI 客户端工具(https://fluxcd.io/docs/installation/#install-the-flux-cli)

部署flux

step1:添加repo源
helm repo add fluxcd https://charts.fluxcd.io
step2:创建flux运行的命令空间
kubectl create namespace flux
step3:在集群中创建flux访问repo的deploy key
ssh-keygen -q -N "" -f ~/.ssh/gitlab.com
kubectl -n flux create secret generic flux-ssh --from-file=~/.ssh/gitlab.com
rm ~/.ssh/gitlab.com # 也可以不删除

在这里插入图片描述

step4:开始安装

由于我这里使用的是自己定义的deploy key ,所以运行以下命令

helm upgrade -i flux fluxcd/flux 
--set git.url=git@gitlab.com:xxx/gwave-dev/tomcat 
--set git.branch=master 
--namespace flux

在这里插入图片描述
可以发现,在部署好flux服务后,会对出现一个flux-git-deploy的secrets,这个是flux服务本身生成的一堆密钥对,代码库就需要此公钥来和flux进行通信
在这里插入图片描述

step5:执行如下命令将publickey粘贴到deploy key中
kubectl -n flux logs deployment/flux | grep identity.pub | cut -d '"' -f2

或者

fluxctl identity --k8s-fwd-ns flux

在这里插入图片描述
将上述命令回去到的public key复制并粘贴到代码库中的Deploy Keys中,如下图所示:
在这里插入图片描述

step6:连通性测试
fluxctl sync --k8s-fwd-ns flux

在这里插入图片描述
到此已经部署ok,接下来所有的操作只需要对代码库进行增删改即可,同时提交后即可完成服务的部署。
代码库结构如下:
在这里插入图片描述
说明:
如果通过helm部署的时候没有–git-path参数,默认只会对namespaces和workloads目录生效,若想对其他目录生效,只需在helm upgrade中添加–git-path 即可。
将代码库中的nginx的副本扩容到5个。
说明:
如果通过helm部署的时候没有–git-path参数,默认只会对namespaces和workloads目录生效,若想对其他目录生效,只需在helm upgrade中添加–git-path 即可。
将代码库中的nginx的副本扩容到5个。
在这里插入图片描述

InfluxDB在KubernetesK8s应用场景主要涉及以下几个方面: 1. **时间序列数据存储和分析**:InfluxDB是一个专为时间序列数据设计的高性能数据库。在Kubernetes集群,您可以使用InfluxDB来存储和分析与集群相关的监控数据、日志数据、事件数据等。通过将InfluxDB与其他监控和日志收集工具集成,您可以实时监视和分析Kubernetes集群的性能、资源利用率和事件。 2. **应用程序指标监控**:Kubernetes集群应用程序通常会生成各种指标,例如请求速率、响应时间、错误率等。使用InfluxDB,您可以收集和存储这些指标,并使用其查询语言(InfluxQL或Flux)进行实时监控、仪表盘展示和报警。这可以帮助您更好地理解应用程序的行为和性能,并及时采取措施来解决问题。 3. **自动扩展和资源优化**:Kubernetes的弹性特性允许根据负载情况来自动扩展和缩减应用程序的实例数量。使用InfluxDB,您可以通过收集和分析与负载相关的指标,根据自定义规则来自动调整应用程序的实例数量。这有助于实现资源优化和成本控制。 4. **日志和事件分析**:Kubernetes集群的事件和日志记录对于故障排除和系统分析至关重要。通过将InfluxDB与日志收集工具(如Fluentd、Filebeat等)集成,您可以将集群的日志数据发送到InfluxDB,并使用其查询功能进行分析和检索。这有助于快速定位问题、进行故障排除和改进系统性能。 这些是InfluxDB在Kubernetes的一些常见应用场景,但并不限于此。由于InfluxDB的灵活性和可扩展性,您可以根据具体需求将其用于其他用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值