Saltar para o conteúdo principal
Versão 3.0.0

Políticas de cluster

Políticas de cluster são manifests que controlam a comunicação entre Pods, entre namespaces e entre o cluster e redes externas. Elas não instalam componentes — definem quais conexões são permitidas ou bloqueadas no nível da plataforma.

No contexto da instalação do TDP Kubernetes, essas políticas só são necessárias quando o ambiente impõe restrições de conectividade que afetam o funcionamento dos componentes.

Um conceito recorrente nessas políticas é o egress: o tráfego de saída de um Pod em direção a serviços externos ao próprio workload — como bancos de dados, endpoints S3, APIs corporativas e object storage. Ambientes com NetworkPolicies ativas bloqueiam esse tráfego por padrão, exigindo que cada destino seja declarado explicitamente.

Quando considerar este ajuste

Considere este ajuste quando o cluster adotar NetworkPolicies ativas ou outras regras de conectividade que possam bloquear a comunicação necessária aos componentes do TDP.

Dependendo do ambiente, essas políticas podem precisar ser aplicadas antes da instalação dos componentes ou em conjunto com ela.

Sem essas regras, componentes do TDP podem falhar ao tentar acessar:

  • bancos de dados externos
  • endpoints S3 e object storage
  • serviços corporativos fora do namespace
  • outros intervalos de IP liberados pela rede do ambiente

Papel deste YAML no fluxo GitOps

O YAML abaixo é um manifest de política de plataforma. Ele não instala componentes do TDP e não substitui os manifests das Applications. Seu papel é liberar ou restringir comunicações exigidas pelo ambiente.

Exemplo de NetworkPolicy

O exemplo abaixo permite comunicação interna entre Pods do namespace e libera egress para destinos externos específicos:

allow-internal-full-and-external-ip.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-internal-full-and-external-ip
namespace: tdp-project
spec:
podSelector: {}
policyTypes:
- Egress
- Ingress

ingress:
- from:
- podSelector: {}

egress:
- to:
- podSelector: {}
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system

- to:
- ipBlock:
cidr: x.x.x.0/24

Aplicação

Terminal input
kubectl apply -f allow-internal-full-and-external-ip.yaml

O que revisar antes de aplicar

  • O namespace de destino (tdp-project no exemplo)
  • Os intervalos de IP liberados em ipBlock.cidr
  • A necessidade de permitir comunicação com kube-system
  • As políticas já existentes no cluster, para evitar sobreposição ou bloqueios involuntários

Onde guardar no repositório GitOps

Para manter rastreabilidade, versione este arquivo no repositório GitOps dentro de uma pasta policies/:

tdp-gitops/
├── app-of-apps.yaml
├── apps/
├── values/
└── policies/
└── allow-internal-full-and-external-ip.yaml

Esses arquivos não são gerenciados pelo Argo CD como Applications — são aplicados diretamente com kubectl apply -f. Armazená-los no repositório garante histórico de mudanças junto ao restante da configuração da plataforma.