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
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