Kubernetes flux的定义

182 阅读3分钟

Kubernetes flux

Kubernetes flux的定义

Kubernetes flux的定义是,它是一个自发确保集群位置的工具,可以将配置计算到git中,以激活Kubernetes集群中的开发,它可以使用一个运营商,这意味着我们没有不同的CD工具,它可以扫描适用的图像档案,以识别新的图像,激活部署,并更新所需的运行配置,这是建立在这上面的,因为它是有益的,因为我们不需要让我们的CI方法到集群,每个变化是原子和事务性的。

什么是Kubernetes flux?

flux在Kubernetes中有一组API扩展,它可以支持如何将git仓库和其他配置源放入集群中,例如,我们可以从git仓库中生成'git仓库'的对象到镜像配置中,然后可以配置一个'kustomization'对象。Flux可以在基于角色的控制方面做出努力,这样我们就可以锁定任何特定的同步是否可以改变,它可以与slack和其他系统传达通知,如果我们有新的部署代码,它也可以自动更新配置,Flux可以使用源控制平台,如Git,这使我们可以定义应用程序集群的理想状态。

Kubernetes flux组件

  • 源控制器

它的主要作用是给出一个通用的接口,源的API可以描述kubernetes对象的集合,它可以验证源的定义。

  • 自定义控制器

这个组件可以作为一个操作者,特别是可以在工作负载的管道中运行,它可以根据Kubernetes的API验证清单。

  • 舵手控制器

这个组件可以作为操作者工作,因此它可以控制Kubernetes清单中的舵手图,它可以执行反射性的活动,即舵手测试和回滚。

  • 通知控制器

Kubernetes的这个组件可以特别处理来自其他系统的入站和出站事件,并基于其严重程度。

  • 图像自动化控制器

在这个更新Git仓库的组件中,图像反射器组件和图像自动化控制器可以一起工作,图像反射器可以扫描和反映Kubernetes资源中的图像。

逐步实现Kubernetes的流动性

第1步--安装和引导flux

在这一步中,可以在我们的本地机器上进行设置,这样我们就可以在我们的集群上进行安装,并且可以对已提交的git仓库进行设置,以保持和更新其配置,对于安装,我们可以使用Linux的官方bash脚本。

  • 而下面的命令可以用于Linux和macOS:
`“$ brew install fluxcd/tap/flux”.`

Flux可以为一个特定的供应商生成git仓库,对于任何必要的需求,我们需要有一个用户名和个人方法,我们可以把它们保留在环境变量中,以避免多次输入。

  • 我们可以使用下面的命令,用官方脚本安装flux:
`“$ curl https://fluxcd.io/install.sh -so flux-install.sh”`
  • 我们可以使用下面的命令对脚本进行验证:
`“$ less ./flux-install.sh”`

第2步 - 配置自动开发

在这一步中,我们可以为所有的软件库配置flux,这样我们就可以在它们可用的时候把变化放到我们的集群中,当我们试图用它的起始配置生成软件库时,flux可以有一些命令,这些命令可能有助于通过使用参数来创建配置清单,帮助从头开始快速编写。

  • 为了添加可用的版本库,我们需要在我们的机器上做一个副本来推送变化:
`“$ git clone https://github.com/$GITHUB_USER/flux-config ~/flux-config”`
  • 用于导航:
`“$ cd ~/flux-config”`

第3步 - 设置slack通知

在这一步中,我们可以设置自动 "podinfo",在我们的集群中开发,我们可以将流量加入slack频道,我们需要有传入的webhook与slack相结合,为了做到这一点,首先我们需要登录slack,它可以跨越到创建页面,其中有创建新的应用程序按钮,然后我们必须选择 "从头开始",然后我们需要选择定义工作空间。
o为了创建秘密,这是slack-URL,可能有webhook,我们需要运行以下命令:

`“$ kubectl -n flux-system create secret generic slack-url --from-literal=address=your_slack_webhook”`

第4步--自动化Helm的发布部署。

在这一步中,我们可以观察所有的自定义和Git仓库,在其中flux可以生成Helm图表,监测可以存储gits的图表,指导flux观察Helm图表的活动。

  • 用于导航回到存储库:
`“$ cd ~/flux-config”`
  • Podinfo-helm可以通过使用下面的命令创建:
`“$ kubectl create namespace podinfo-helm”`

安装flux CLI

  • 在安装flux之前,我们需要检查版本,应该是1.19或最新的版本,旧版本也支持。
  • 下面的命令可以用来在macOS上安装flux。
`“$ brew install Fluxcd/tap/Flux”.`
  • 对于在Linux系统上安装flux:
`“curl -s https://toolkit.Fluxcd.io/install.sh | sudo bash”`

对于在Windows操作系统上的安装,我们需要先找到二进制文件,然后我们需要确认它是否工作。

为了将flux配置到我们的shell中,我们需要通过使用下面的命令来加载bash-completion。

“.<(flux completion bash)”

结论

在这篇文章中,我们得出结论,kubernetes提供了一个工具,可以自动将状态从配置转换为git,我们也看到了安装过程,在Kubernetes中的flux步骤,也看到了kubernetes flux的组件,这篇文章将有助于理解这个概念。