

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Fluxo
<a name="flux"></a>

O Flux é outra ferramenta para Kubernetes que implementa GitOps princípios de uma forma única.

## GitOps apoio
<a name="flux-gitops"></a>


| Área | Capacidades da ferramenta | 
| --- | --- | 
| Git como a única fonte da verdade | O Flux usa repositórios Git como a fonte definitiva para definir o estado desejado do sistema. Todas as configurações de aplicativos e infraestrutura são armazenadas no Git. | 
| Configuração declarativa | O Flux trabalha com descrições declarativas do estado desejado do seu cluster. Essas descrições geralmente são manifestos do Kubernetes, gráficos do Helm ou sobreposições do Kustomize. | 
| Sincronização automatizada | O Flux monitora continuamente o repositório Git em busca de alterações. Quando detecta alterações, ele as aplica automaticamente ao cluster. | 
| Nativo do Kubernetes | O Flux é construído como um conjunto de controladores Kubernetes e recursos personalizados. Ele usa os mecanismos de extensão no Kubernetes para fornecer recursos. GitOps  | 
| Modelo de implantação baseado em pull | Ao contrário dos CI/CD sistemas tradicionais baseados em push, o Flux usa um modelo baseado em pull. O cluster extrai o estado desejado do Git em vez de usar um sistema externo para enviar alterações. | 
| Reconciliação contínua | O Flux compara constantemente o estado real do cluster com o estado desejado no Git. Ele corrige automaticamente qualquer desvio detectado entre esses estados. | 
| Multilocação | *O Flux oferece suporte à multilocação por meio de seus conceitos de personalizações e. *HelmReleases** Equipes diferentes podem gerenciar suas próprias partes da configuração de forma independente. | 
| Entrega progressiva | O Flux oferece suporte a estratégias avançadas de implantação, como versões e A/B testes canários, por meio de seu componente Flagger. | 
| Integração com o Helm | O Flux inclui suporte nativo para o Helm, para que você possa gerenciar facilmente as versões do Helm por meio do. GitOps | 
| Automação de atualização de imagem | O Flux pode atualizar automaticamente as imagens do contêiner no Git quando novas versões estão disponíveis no registro do contêiner. | 
| Personalize o suporte | Você pode usar o suporte nativo fornecido pelo Flux for Kustomize para personalizar e corrigir manifestos do Kubernetes. | 
| Segurança e RBAC | O Flux se integra ao Kubernetes RBAC para controle de acesso. Ele suporta o gerenciamento de segredos por meio de vários back-ends. | 
| Observabilidade | O Flux fornece informações de status e métricas sobre reconciliação e operações. Ele se integra às ferramentas de monitoramento para melhorar a observabilidade. | 
| Arquitetura orientada a eventos | O Flux usa uma abordagem orientada por eventos para implementar reconciliações e atualizações. | 
| Extensibilidade | A ferramenta foi projetada para ser extensível, para que você possa adicionar controladores e recursos personalizados. | 
| Sincronização entre clusters | O Flux suporta o gerenciamento de vários clusters a partir de um único conjunto de repositórios. | 
| Gerenciar dependências | Ele permite definir dependências entre diferentes partes do sistema e garante a ordem correta das operações. | 
| Receptores de webhook | Você pode configurar o Flux para receber webhooks de provedores Git ou outros sistemas para iniciar a reconciliação imediata. | 

Ao implementar esses GitOps princípios, o Flux fornece um sistema robusto e flexível para gerenciar clusters e aplicativos Kubernetes. Ele garante que sua infraestrutura e aplicativos estejam sempre sincronizados com seus repositórios Git e fornece consistência, confiabilidade e facilidade de gerenciamento em ambientes complexos do Kubernetes. A abordagem nativa do Kubernetes e o foco na automação da ferramenta a tornam particularmente adequada para ambientes nativos da nuvem.

Para cenários e requisitos que o Flux pode abordar, consulte os [casos de uso do Flux](use-cases.md#flux-use-cases) posteriormente neste guia. Para uma comparação entre o Argo CD e o Flux, consulte [Comparação de recursos](use-cases.md#argo-flux-comparison) posteriormente neste guia.

Para obter informações adicionais, consulte a [documentação do Flux](https://fluxcd.io/flux/).

## Arquitetura
<a name="flux-architecture"></a>

O diagrama a seguir ilustra um fluxo de trabalho de CD GitOps orientado por CD que usa o Flux em um cluster EKS. Para obter informações detalhadas, consulte a [documentação do Flux](https://fluxcd.io/flux/).

![Arquitetura de fluxo e fluxo de trabalho ativados. AWS](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/eks-gitops-tools/images/flux-on-aws.png)


em que:
+ **Etapa 1: mesclagem do Pull Request (PR)**. Um desenvolvedor confirma as alterações nos manifestos do Kubernetes ou nos gráficos do Helm que são armazenados em um repositório Git. Quando o PR é revisado e incorporado à ramificação principal, o estado desejado do aplicativo é atualizado no controle de origem.
+ **Etapa 2: Sincronização do repositório**. O Flux é executado em um namespace dedicado no cluster EKS e monitora continuamente o repositório Git configurado. Quando detecta alterações, ele obtém as atualizações mais recentes para reconciliar o estado declarado.
+ **Etapa 3: Implantação no namespace de destino**. O Flux compara o estado desejado do Git com o estado ativo no cluster. Em seguida, ele aplica as alterações necessárias ao namespace da carga de trabalho de destino para que o aplicativo seja implantado ou atualizado adequadamente.