Saltar para o conteúdo principal
Versão 3.0

Configuração do NiFi

ChartVersion3.0.1TypeapplicationAppVersion1.28.0
CompatibilidadeKubernetes1.32+OpenShift4.19+Rancher2.10.x+
Suporte a recursosLDAPsuportadoS3suportadoIngresssuportadoGateway APIsuportado

O chart tdp-nifi implanta o Apache NiFi com o operador NiFiKop e ZooKeeper.

Na operação diária, quem mantém o NiFi lida com um cluster declarado no CRD NifiCluster: alterações em ZooKeeper, certificados TLS, listeners ou Ingress repercutem diretamente na coordenação entre nós e na URL que os usuários utilizam para acessar a interface. O operador reconcilia o estado desejado — se o CRD estiver inconsistente ou um pré-requisito (por exemplo cert-manager) falhar, o sintoma costuma ser NifiCluster preso em estado intermediário em vez de um único Pod com erro genérico.

Visão geral

PropriedadeValor
Charttdp-nifi
Versão do NiFi1.28.0
Versão do chart3.0.1
OperadorNiFiKop
CoordenaçãoZooKeeper embutido como subchart
Recurso principalNifiCluster
Recursos suportadosLDAP, S3, Ingress e Gateway API
Acesso padrãoService NodePort para a UI do NiFi

Páginas relacionadas

O que é o NiFiKop?

O NiFiKop é um operador Kubernetes especializado no ciclo de vida de clusters Apache NiFi.

Em vez de gerenciar instâncias NiFi manualmente, você descreve o estado desejado em um recurso Kubernetes chamado NifiCluster, e o NiFiKop cuida de criar, monitorar e atualizar os nós NiFi de forma declarativa.

O chart tdp-nifi implanta tanto o operador NiFiKop quanto o cluster NiFi em si, incluindo:

ComponenteFunção
NiFiKop OperatorGerencia o ciclo de vida do NifiCluster (CRD)
ZooKeeperCoordenação de cluster entre os nós NiFi
NifiClusterRecurso que define o cluster: nós, listeners, serviços externos
cert-managerEmite certificados TLS para comunicação segura entre nós (quando webhook.enabled=true)

Esse modelo baseado em operador significa que a maioria das configurações do NiFi vai para nifiCluster.* em vez de parâmetros Helm diretos — o operador traduz esses valores em ConfigMaps, Secrets e Pods com a configuração correta do NiFi.

NiFi Cluster

O NiFi é implantado por meio de um recurso customizado NifiCluster. A configuração principal do cluster fica sob nifiCluster, incluindo nós, grupos de configuração, serviços externos, listeners, storage e segurança.

O chart padrão inicia com um único nó (nifiCluster.nodes contém apenas id: 1). Para executar nós adicionais, adicione entradas como id: 2 e id: 3, apontando para o nodeConfigGroup desejado no arquivo de valores ou via --set nifiCluster.nodes[1].id=2:

nifiCluster:
nodes:
- id: 1
nodeConfigGroup: "default_group"
- id: 2
nodeConfigGroup: "default_group"
- id: 3
nodeConfigGroup: "default_group"

ZooKeeper

O ZooKeeper é implantado como subchart e usado pelo NiFi para coordenação do cluster. Em instalações pequenas, o valor padrão zookeeper.replicaCount: 1 atende cenários simples; para ambientes de maior criticidade, ajuste réplicas, persistência e recursos conforme a política do cluster.

Para saber mais

Consulte Apache NiFi — Conceitos para uma visão completa da ferramenta, sua arquitetura e funcionamento.

Estrutura de valores (Helm)

O chart tdp-nifi distribui a configuração nos blocos abaixo:

  • tdp-nifi: — habilitação do chart.
  • global: — configurações globais compartilhadas por dependências.
  • cert-manager: — subchart opcional usado quando o webhook do NiFiKop exige certificados.
  • zookeeper: — ZooKeeper usado para coordenação do cluster NiFi.
  • nifikop: — operador NiFiKop, incluindo imagem, webhook, cert-manager e recursos.
  • nifiCluster: — definição principal do cluster NiFi: segurança, configuração somente leitura, serviços, nós, listeners, storage e autorização.
  • TDP-Settings:, ingress: e gatewayApi: — controle de exposição da UI por Ingress ou Gateway API.
tdp-nifi:
enabled: true

cert-manager:
enabled: false

zookeeper:
replicaCount: 1

nifikop:
enabled: true
webhook:
enabled: false

nifiCluster:
nodes:
- id: 1
nodeConfigGroup: "default_group"

TDP-Settings:
gateway:
ingress:
enabled: false
gatewayApi:
enabled: false

Imagens do NiFi

As imagens do NiFi são unificadas no registry registry.tecnisys.com.br/tdp/images/nifi, com uma variante de tag por plataforma (base 1.28.0):

PlataformaTag da imagem
Kubernetes1.28.0-0
OpenShift1.28.0-openshift

Defina a imagem do cluster em nifiCluster.clusterImage:

nifiCluster:
clusterImage: "registry.tecnisys.com.br/tdp/images/nifi:1.28.0-0"

Pré-requisitos

  • Kubernetes 1.32+, Red Hat OpenShift 4.19+ ou Rancher Manager 2.10.x+
  • Helm 3.2.0+

Recursos opcionais

  • Ingress Controller — necessário apenas quando ingress.enabled=true.
  • cert-manager — necessário apenas quando nifikop.webhook.enabled=true.
Nota
  • Com ingress.enabled=true, o host configurado em ingress.rules só recebe tráfego quando há um Ingress Controller disponível no cluster.
  • Com nifikop.webhook.enabled=true, os controllers do cert-manager precisam estar instalados e em execução para que o webhook do NiFiKop consiga emitir certificados.

CRDs do NiFiKop e cert-manager (tdp-crds)

Antes da primeira instalação do tdp-nifi, instale o chart tdp-crds, que entrega os CRDs usados pelo NiFiKop e, quando aplicável, os CRDs do cert-manager:

Terminal input
helm upgrade --install tdp-crds \
oci://registry.tecnisys.com.br/tdp/charts/tdp-crds \
--namespace tdp --create-namespace

Quando nifikop.webhook.enabled=true, além dos CRDs, os controllers do cert-manager também precisam estar instalados e em execução (cert-manager, cainjector e webhook). Se os controllers ainda não estiverem instalados, instale o cert-manager antes de habilitar o webhook do NiFiKop. Consulte Segurança — NiFi para detalhes.

OpenShift: runAsUser e fsGroup

No OpenShift, o SCC restricted exige que os pods executem com UID/GID atribuído ao namespace. Antes do deploy, obtenha o intervalo de UID do namespace e configure:

Terminal input
uid=$(kubectl get namespace <NAMESPACE> -o=jsonpath='{.metadata.annotations.openshift\.io/sa\.scc\.supplemental-groups}' | sed 's/\/10000$//' | tr -d '[:space:]')

Aplique no deploy:

Terminal input
helm upgrade --install tdp-nifi oci://registry.tecnisys.com.br/tdp/charts/tdp-nifi \
-n <NAMESPACE> --create-namespace \
--set nifiCluster.nodeConfigGroups.default_group.runAsUser="${uid}" \
--set nifiCluster.nodeConfigGroups.default_group.fsGroup="${uid}"

Ou no values.yaml:

nifiCluster:
nodeConfigGroups:
default_group:
runAsUser: "<UID>"
fsGroup: "<UID>"

Instalação (OCI)

Terminal input
helm upgrade --install <RELEASE_NAME> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-nifi \
-n <NAMESPACE> --create-namespace