GitOps实操工具-Flux简介

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

GitOps实操工具-Flux简介

  • 本文编译来自 https://github.com/openthings/flux
  • 本文地址 https://my.oschina.net/u/2306127/blog/1826581,by openthings, 2018.06.08.
  • 参考:
    • GitOps—像代码一样管理Istio配置,https://my.oschina.net/u/2306127/blog/1822993
    • GitOps实操工具-Flux安装与设置,https://my.oschina.net/u/2306127/blog/1827186

我们相信,通过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,每一次事务要么失败要么成功。你可以完全以代码为中心,而无需担心基础设施的事情。

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

贡献

Flux 采用典型的 PR workflow. 所有的贡献代码通过 PRs进行,需满足下面的指南。

指南

  • 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

除此之外,有几个检查机制会被应用,查看the lint script 获取详细信息。

获取帮助

如果有任何关于 Flux 和持续交付有关的问题,请:

  • 读 the Weave Flux docs.
  • 邀请参加到 Weave community slack.
  • 到 #flux slack channel提问。
  • 参见  Weave User Group and get invited to online talks, hands-on training and meetups in your area.
  • 发送邮件到 [email protected]
  • File an issue.

欢迎你的任何反馈!

转载于:https://my.oschina.net/u/2306127/blog/1826581

你可能感兴趣的:(GitOps实操工具-Flux简介)