天天看点

GitOps实操工具-Flux简介

GitOps实操工具-Flux简介

我们相信,通过GitOps:

  • 在git中描述你的整个系统状态的声明。包括:apps, config, dashboards, monitoring 和任何其它的内容。
  • 所有描述的都可以自动化。使用 YAMLs 实现系统的强制一致性。你不需要运行​

    ​kubectl​

    ​, 所有的改变都通过git进行。使用diff tools检测观测到的和期望的状态的差别,以及得到通知。
  • 推送代码而不是容器。所有控制的内容都通过pull requests。对于开发新手没有学习曲线,他们只需要使用标准的git PR 过程。版本化的git允许你从任何的快照恢复系统,对于pull request的运维改变是透明的过程,修复产品的问题通过 pull request 来代替对运行系统的改变。
  • 译注:
  • 能够将应用更容易地部署到不同的集群之中,以及在多种环境下的测试。
  • 数据在系统重做的过程中如何处理?恐怕会引起问题。
  • 切换过程中的事务性,需要单独进行处理,以保证ACID。

Flux是一个工具,自动保障git中的配置与集群的配置状态相匹配。 它在集群中使用 operator触发 Kubernetes中的部署,意味着你不需要独立的 CD tool. 它监视所有的相关的 image repositories,检测新的 images, 触发deployments 并且更新到期望的运行配置。

收益就是:你不需要授权CI 存取cluster, 所有的改变都是原子和事务性的。git 具有audit log,每一次事务要么失败要么成功。你可以完全以代码为中心,而无需担心基础设施的事情。

GitOps实操工具-Flux简介

Flux是干什么的?

Flux是一个非常有用的交付工具,用于持续交付流水线的末端。Flux确保你的最新的容器镜像和配置能够应用到集群之中,并保持一致。

特征

主要特性包括:

  • ​​Automated git → cluster synchronisation​​
  • ​​Automated deployment of new container images​​
  • ​​Integrations with other devops tools​​​ (​​Helm​​ and more)
  • 不需要额外的服务和基础设施 - Flux 位于集群内部。
  • 直接控制集群部署的状态 (rollbacks, lock a specific version of a workload, manual deployments)
  • 可观测性: git commits are an audit trail, and you can record e.g., why a given deployment was locked.

与Weave Cloud的关系

Weave Cloud是Weaveworks提供的一个包含Flux的SaaS产品,包括:

  • 部署的UI和alerts:所有的 flux 操作可以通过点击即可。
  • 全部的可观测和集群透视:集群监视面板,实时配置图,用于跟踪和分析集群状态。

关于Weave Cloud的更多信息,参考 ​​its homepage​​。

开始使用 Flux

Flux使用的相关文档,如下:

  • ​​Introduction to Flux​​
  • ​​FAQ​​
  • ​​How it works​​
  • ​​Installing Flux​​
  • ​​Using Flux​​
  • ​​Upgrading to Flux v1​​
  • ​​Troubleshooting​​

开发者信息

​​Build documentation​​

​​Release documentation​​

贡献

指南

  • All code must abide​​Go Code Review Comments​​
  • Names should abide​​What's in a name​​
  • Code must build on both Linux and Darwin, via plain​

    ​go build​

  • Code should have appropriate test coverage, invoked via plain​

    ​go test​

继续阅读