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 tentará a resolução externa se nenhum for encontrado.

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

Cada pod do Kubernetes é executado em um nó ou uma máquina física ou virtual responsável por gerenciar as imagens de contêineres 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. Elas estão listadas abaixo, da menos granular para a mais granular.

Políticas de 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 vai recomendar:

Políticas de nó

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

As NetworkPolicies são baseadas em 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 as NetworkPolicies diretamente em pods que executam aplicativos ou builds.

Cada Space do Kf cria duas NetworkPolicies para começar, uma segmentação de aplicativos e uma segmentação de builds. É 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 de tipo enumerado 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. Ela possibilita as seguintes funcionalidades que o Kf usa:

  • roteamento norte/sul para o gateway de entrada do cluster;
  • saída para a Internet, por exemplo, para buscar buildpacks;
  • roteamento leste/oeste entre os aplicativos;
  • acesso ao servidor DNS do Kubernetes;
  • acesso a registros de contêineres;
  • 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 os serviços, permitindo que você crie aplicativos empresariais robustos compostos por muitos microsserviços na infraestrutura escolhida.

Veja a lista de recursos aceitos aqui.