Como configurar políticas de rede

O Kf se integra perfeitamente ao Kubernetes e ao Istio para fornecer uma aplicação robusta da política de rede.

Por padrão, as cargas de trabalho do Kf são executadas no cluster do Kubernetes e resolvem endereços usando o DNS do Kubernetes. Esse resolvedor de DNS tentará primeiro resolver endereços no cluster e somente se nenhum for encontrado tentará a resolução externa.

Cada aplicativo Kf é executado com um arquivo secundário do Envoy injetado pelo Istio ou pelo Anthos Service Mesh (ASM). Esse arquivo secundário faz proxy de todo o tráfego de rede dentro e fora do pod do Kubernetes.

Cada pod do Kubernetes é executado em um nó, uma máquina física ou virtual, responsável por gerenciar as imagens do contêiner que compõem um pod. Os nós existem em uma rede física ou virtual.

Juntos, eles formam uma hierarquia de sistemas em que é possível aplicar políticas de rede. Eles estão listados abaixo do menos granular para o mais granular.

Políticas no nível da rede

A proteção da carga de trabalho começa com a rede em que o cluster do GKE está instalado.

Se você estiver executando o Kf em um cluster do GKE no GCP, ele recomendará:

Políticas no nível do nó

É possível configurar políticas para contêineres em execução no nó usando as Kubernetes NetworkPolicies. Elas são o mapeamento mais próximo das políticas de rede do Cloud Foundry que existem no Kubernetes.

As NetworkPolicies são respaldadas por um complemento do Kubernetes. Se você configurar seu próprio cluster do GKE, será necessário ativar a aplicação da NetworkPolicy.

O Kf rotula os aplicativos com kf.dev/networkpolicy=app e cria com kf.dev/networkpolicy=build. Isso permite segmentar NetworkPolicies diretamente em pods que executam aplicativos ou versões.

Cada Space do Kf cria duas NetworkPolicies para começar, uma segmentação de aplicativos e uma segmentação de versões. É possível alterar a configuração nos campos spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress do Space. Esses campos são definidos com um dos seguintes valores:

Valor Enum Descrição
PermitAll Permite todo o tráfego.
DenyAll Nega todo o tráfego.

Por padrão, o Kf usa uma política de rede permissiva. Isso permite a seguinte funcionalidade que o Kf usa:

  • Roteamento norte/sul para o gateway de entrada do cluster
  • Saída para a Internet. Por exemplo, para buscar pacotes de criação
  • Roteamento do leste/oeste entre os aplicativos
  • Acesso ao servidor DNS do Kubernetes
  • Acesso a registros de contêiner
  • Acesso direto à rede VPC
  • Acesso a serviços do Google, como o Cloud Logging
  • Acesso ao servidor de Identidade da carga de trabalho para credenciais de rotação automática

Políticas de malha de serviço

Se você precisar de controle de rede detalhado, autenticação, autorização e observabilidade, poderá aplicar políticas usando o Anthos Service Mesh.

Uma malha de serviço é uma camada de infraestrutura que permite a comunicação gerenciada, observável e segura entre seus serviços, permitindo que você crie aplicativos empresariais robustos compostos por muitos microsserviços na infraestrutura escolhida.

Veja a lista de recursos compatíveis aqui.