Configurar políticas de rede

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

Por predefinição, as cargas de trabalho do Kf são executadas no cluster do Kubernetes e resolvem endereços usando o DNS do Kubernetes. Este resolvedor de DNS tenta primeiro resolver endereços no cluster e, só se não encontrar nenhum, tenta a resolução externa.

Cada app do Kf é executada com um sidecar do Envoy injetado pelo Istio ou pela Anthos Service Mesh (ASM). Este sidecar envia todo o tráfego de rede para dentro e para fora do pod do Kubernetes.

Cada Kubernetes Pod é executado num nó, uma máquina física ou virtual responsável por gerir as imagens de contentores que compõem um Pod. Os nós existem numa rede física ou virtual.

Em conjunto, estes formam uma hierarquia de sistemas aos quais pode aplicar políticas de rede. Estas estão listadas abaixo do nível menos detalhado para o mais detalhado.

Políticas ao nível da rede

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

Se estiver a executar o Kf num cluster do GKE na GCP, o Kf recomenda:

Políticas ao nível do nó

Pode configurar políticas para contentores em execução no nó através de NetworkPolicies do Kubernetes. Estas são as associações mais próximas às políticas de rede do Cloud Foundry existentes no Kubernetes.

As NetworkPolicies são suportadas por um suplemento do Kubernetes. Se configurar o seu próprio cluster do GKE, tem de ativar a aplicação da NetworkPolicy.

O Kf etiqueta as apps com kf.dev/networkpolicy=app e as compilações com kf.dev/networkpolicy=build. Isto permite-lhe segmentar NetworkPolicies diretamente em Pods que executam apps ou compilações.

Cada espaço Kf cria duas NetworkPolicies para começar, uma a segmentar apps e outra a segmentar compilações. Pode alterar a configuração nos campos do espaço.spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress Estes campos podem ser definidos para um dos seguintes valores:

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

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

  • Encaminhamento norte/sul para o gateway de entrada do cluster
  • Saída para a Internet, por exemplo, para obter Buildpacks
  • Encaminhamento este/oeste entre apps
  • Acesso ao servidor DNS do Kubernetes
  • Acesso a registos de contentores
  • Acesso direto à rede VPC
  • Acesso a serviços Google, como o Cloud Logging
  • Acesso ao servidor do Workload Identity para credenciais de rotação automática

Políticas de malha de serviços

Se precisar de um controlo detalhado da rede, autenticação, autorização e observabilidade, pode aplicar políticas através do Anthos Service Mesh.

Uma malha de serviços é uma camada de infraestrutura que permite uma comunicação gerida, observável e segura entre os seus serviços, o que lhe permite criar aplicações empresariais robustas compostas por muitos microsserviços na infraestrutura escolhida.

Pode ver a lista de funcionalidades suportadas aqui.