Puede configurar un servicio de Kubernetes de tipo LoadBalancer para permitir el tráfico del equilibrador de carga en función de la dirección IP de origen de la solicitud entrante y para permitir únicamente el tráfico del pod local.
Requisitos mínimos
externalTrafficPolicy
y
LoadBalancerSourceRanges
con un servicio de Kubernetes de tipo LoadBalancer en un clúster de
Tanzu Kubernetes que cumpla con los siguientes requisitos mínimos:
Componente | Requisito mínimo | Más información |
---|---|---|
vCenter Server y ESXi | vSphere 7.0 Update 2 | Consulte las notas de la versión. |
Clúster supervisor | v1.19.1+vmware.2-vsc0.0.8-17610687 |
Consulte Actualizar clúster supervisor mediante una actualización de los espacios de nombres de vSphere. |
Equilibrador de carga | NSX-T Data Center v3.1 |
Consulte Redes para vSphere with Tanzu. |
Versión de Tanzu Kubernetes | Una de las versiones más recientes de Tanzu Kubernetes. | Consulte Comprobar la compatibilidad del clúster de Tanzu Kubernetes para actualizar. |
Acerca de la compatibilidad con la directiva de tráfico local y los rangos de IP de origen
Si está usando redes de NSX-T Data Center, puede configurar un servicio de Kubernetes de tipo LoadBalancer para permitir la directiva de tráfico externo y rangos de IP de origen del equilibrador de carga. La función externalTrafficPolicy
permite restringir el tráfico del pod en el nodo local. La función LoadBalancerSourceRange
permite especificar direcciones IP de origen para permitirlas o bloquearlas.
Servicio de ejemplo para tráfico local solo
La siguiente especificación de servicio del equilibrador de carga configura la instancia del equilibrador de carga con el parámetro externalTrafficPolicy
establecido en Local
. El resultado es que el tráfico del pod se enruta solo a esos nodos donde se ejecutan los pods locales.
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
La función opera con un monitor de comprobación de estado de NSX-T. Desde una perspectiva de administración de NSX-T, es importante tener en cuenta las operaciones internas de esta función.
Un monitor de comprobación de estado de NSX-T observa el NodePort de comprobación de estado de Kubernetes que asigna kube-proxy para el grupo de servidores que corresponde al servicio de tipo LoadBalancer. El monitor de comprobación de estado de NSX-T envía solicitudes HTTP GET al NodePort de comprobación de estado de destino. El kube-proxy de un nodo devuelve el código de estado HTTP 500 cuando no hay pods locales en ejecución. NSX-T marcará los nodos que no tengan pods locales como DOWN y aparecerán de este modo en NSX Manager. El tráfico se enrutará solo hacia esos nodos que tienen pods locales en ejecución.
Servicio de ejemplo para permitir el tráfico en función de los rangos de IP de origen
La siguiente especificación de servicio del equilibrador de carga configura el parámetro loadBalancerSourceRanges
con una matriz de CIDR de IP de origen permitidos. Solo se permitirán solicitudes entrantes procedentes de estos rangos de IP de origen y se descartará todo el resto del tráfico entrante.
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