Você pode configurar um serviço Kubernetes do tipo LoadBalancer para permitir o tráfego do balanceador de carga com base no endereço IP de origem da solicitação de entrada e para permitir apenas o tráfego de pod local.

Requisitos mínimos

Você pode usar os recursos externalTrafficPolicy e LoadBalancerSourceRanges com um serviço Kubernetes do tipo LoadBalancer em um cluster Tanzu Kubernetes que atenda aos seguintes requisitos mínimos:
Componente Requisito mínimo Mais informações
vCenter Server e ESXi vSphere 7.0 Atualização 2 Consulte as notas da versão .
Cluster de Supervisor v1.19.1+vmware.2-vsc0.0.8-17610687 Consulte o Atualize o Supervisor Cluster realizando uma atualização de namespaces do vSphere.
Balanceador de Carga

NSX-T Data Center v3.1

Consulte o Rede para vSphere with Tanzu.
Versão do Tanzu Kubernetes Uma das versões mais recentes do Tanzu Kubernetes. Consulte o Lista de Tanzu Kubernetes releases.

Sobre o suporte para a política de tráfego local e intervalos de IPs de origem

Se você estiver usando a rede NSX-T Data Center, poderá configurar um serviço Kubernetes do tipo LoadBalancer para permitir a política de tráfego externo e os intervalos de IP de origem do balanceador de carga. O recurso externalTrafficPolicy permite que você restrinja o tráfego de pod ao nó local. O recurso LoadBalancerSourceRange permite que você especifique endereços IP de origem para permitir ou bloquear.

Exemplo de serviço somente para tráfego local

A seguinte especificação de serviço do balanceador de carga configura a instância do balanceador de carga com o parâmetro externalTrafficPolicy definido como Local. O resultado é que o tráfego de pod é roteado apenas para os nós que têm pods locais em execução.

apiVersion: v1
kind: Service
metadata:
  name: local-only
spec:
  selector:
    app: testApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  externalTrafficPolicy: Local
  type: LoadBalancer

O recurso funciona usando um monitor de verificação de integridade do NSX-T. De uma perspectiva de administração do NSX-T, é importante estar ciente das operações internas desse recurso.

Um monitor de verificação de integridade NSX-T observa o NodePort de verificação de integridade do Kubernetes alocado pelo kube-proxy para o pool de servidores que corresponde ao serviço do tipo LoadBalancer. O monitor de verificação de integridade do NSX-T envia solicitações HTTP GET para o NodePort de verificação de integridade de destino. O kube-proxy em um nó retorna o código de status HTTP 500 quando não há pods locais em execução. Os nós que não têm pods locais serão marcados para BAIXO por NSX-T e aparecerão como tal em NSX Manager. O tráfego será roteado apenas para os nós que têm pods locais em execução.

Exemplo de serviço para permitir tráfego com base em intervalos de IP de origem

A seguinte especificação de serviço do balanceador de carga configura o parâmetro loadBalancerSourceRanges com uma matriz de CIDRs de IP de origem permitidos. Somente solicitações de entrada provenientes desses intervalos de IPs de origem serão permitidas; todo o outro tráfego de entrada será descartado.

apiVersion: v1
kind: Service
metadata:
  name: allow-based-on-source-IPs
spec:
  selector:
    app: testApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  loadBalancerSourceRanges:
  - 10.0.0.0/24
  - 10.1.0.0/24
  type: LoadBalancer