Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Load Balancer opera en una capa 4 del modelo de Interconexión de sistemas abiertos (OSI) que admite escenarios de entrada y de salida. Distribuye flujos de entrada que llegan al front-end del equilibrador de carga a las instancias del grupo de servidores back-end.
Una equilibrador de carga público integrado con AKS tiene dos propósitos:
- Proporcione conexiones salientes a los nodos del clúster dentro de la red virtual (VNet) de AKS mediante la traducción de la dirección IP privada a una parte de la dirección IP pública de su grupo de salida.
- Proporcione acceso a las aplicaciones a través de servicios de Kubernetes de tipo
LoadBalancer, lo que le permite escalar fácilmente las aplicaciones y crear servicios de alta disponibilidad.
En este artículo se trata la integración con un equilibrador de carga público en AKS. Para la integración interna de Load Balancer, consulte Uso de un equilibrador de carga interno de AKS.
Prerrequisitos
- Azure Load Balancer está disponible en dos SKU: Básico y Estándar. De manera predeterminada, la SKU Estándar se usa al crear un clúster de AKS. La SKU estándar le da acceso a funcionalidad agregada, como un grupo mayor de back-end, varios grupos de nodos, Availability Zones, además es segura de manera predeterminada. Se trata de la SKU de equilibrador de carga recomendada para AKS. Para más información sobre las SKU básicas y estándar, consulte Comparación de las SKU de Load Balancer.
- Para obtener una lista completa de las anotaciones admitidas para los servicios de Kubernetes con el tipo
LoadBalancer, consulte Anotaciones del equilibrador de carga. - En este artículo se da por supuesto que tiene un clúster de AKS con la SKU Estándar de Azure Load Balancer. Si necesita un clúster de AKS, puede crear uno mediante la CLI de Azure, Azure PowerShell o Azure Portal.
Important
Si prefiere usar su propia puerta de enlace, firewall o proxy para proporcionar una conexión de salida, puede omitir la creación del grupo de salida del equilibrador de carga y el IP del front-end respectivo si usa el tipo de salida como UserDefinedRouting (UDR). El tipo de salida define el método de salida para un clúster y su valor predeterminado es el tipo LoadBalancer.
Limitations
Las siguientes limitaciones se aplican al crear y administrar clústeres de AKS que admiten un equilibrador de carga con la SKU estándar:
AKS administra el ciclo de vida y las operaciones de los nodos de agente. No se admite la modificación de los recursos de IaaS asociados a los nodos de agente. Un ejemplo de una operación no admitida sería realizar cambios manuales en el grupo de recursos del equilibrador de carga.
Se requiere al menos una dirección IP pública o un prefijo de dirección IP pública para permitir el tráfico de salida del clúster de AKS. Esta dirección IP o el prefijo de dirección IP pública son necesarios para mantener la conectividad entre el plano de control y los nodos de agente, así como para mantener la compatibilidad con versiones anteriores de AKS. Tiene las siguientes opciones para especificar direcciones IP públicas o prefijos IP con un equilibrador de carga de SKU estándar :
- Proporcione sus propias IP públicas.
- Proporcione sus propios prefijos de dirección IP pública.
- Especifique un número hasta 100 para permitir que el clúster de AKS cree esa cantidad de direcciones IP públicas de SKU estándar en el mismo grupo de recursos que el clúster de AKS. Normalmente, este grupo de recursos se denomina con
MC_al principio. AKS asigna la dirección IP pública al equilibrador de carga de SKU estándar. Por defecto, se crea automáticamente una IP pública en el mismo grupo de recursos que el clúster AKS si no se especifica ninguna IP pública, prefijo de IP pública o número de IP. Asimismo, debe permitir las direcciones públicas y evitar la creación de cualquier directiva de Azure que prohíba la creación de direcciones IP.
Una dirección IP pública creada por AKS no se puede reutilizar como una dirección IP pública "bring your own" (BYO) personalizada. Debe crear y administrar todas las direcciones IP personalizadas.
Solo puede definir la SKU del equilibrador de carga al crear un clúster de AKS. No se puede cambiar la SKU del equilibrador de carga una vez creado un clúster de AKS.
Solo se puede usar un tipo de SKU de equilibrador de carga (básica o estándar) en un único clúster.
Los equilibradores de carga de SKU estándar solo admiten direcciones IP de SKU estándar.
El servicio Private Link no se admite cuando el tipo de grupo de back-end del equilibrador de carga está establecido en
nodeIP.
Creación de un servicio de equilibrador de carga en AKS
Después de crear un clúster de AKS con el tipo de salida LoadBalancer (valor predeterminado), el clúster está listo para usar el equilibrador de carga para exponer los servicios.
Cree un manifiesto de servicio denominado
public-svc.yaml, que crea un servicio público de tipoLoadBalancer.apiVersion: v1 kind: Service metadata: name: public-svc spec: type: LoadBalancer ports: - port: 80 selector: app: public-app
Especifique la dirección IP del equilibrador de carga
Si desea usar una dirección IP específica con el equilibrador de carga, tiene dos opciones para especificar la dirección IP:
-
Establecer anotaciones de servicio (recomendado): use
service.beta.kubernetes.io/azure-load-balancer-ipv4para una dirección IPv4 yservice.beta.kubernetes.io/azure-load-balancer-ipv6para una dirección IPv6. -
Agregue la propiedad LoadBalancerIP al manifiesto YAML del equilibrador de carga: agregue la
Service.Spec.LoadBalancerIPpropiedad al manifiesto YAML del equilibrador de carga. Este campo está en desuso después de Kubernetes ascendente y no puede admitir la pila doble. El uso actual sigue siendo el mismo y se espera que los servicios existentes funcionen sin modificaciones.
Implementación del manifiesto de servicio del equilibrador de carga
Para implementar el manifiesto de servicio público, use
kubectl applyy especifique el nombre del manifiesto de YAML.kubectl apply -f public-svc.yamlEl Azure Load Balancer se configura con una nueva IP pública que da frente al nuevo servicio. Dado que el Azure Load Balancer puede tener varias IP de frontend, cada nuevo servicio que implemente obtendrá una nueva IP de frontend dedicada a la que se accederá de forma exclusiva.
Confirme que se crea el servicio y que el equilibrador de carga está configurado mediante el
kubectl get servicecomando .kubectl get service public-svcAl ver los detalles del servicio, la dirección IP pública creada para este servicio en el equilibrador de carga se muestra en la columna EXTERNAL-IP de la salida. Probablemente la dirección IP tarde unos minutos en cambiar de <pendiente> a una dirección IP pública real. En la salida del ejemplo siguiente se muestra la creación exitosa del servicio.
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default public-svc LoadBalancer 10.0.39.110 203.0.113.187 80:32068/TCP 52sObtenga información más detallada sobre el servicio mediante el
kubectl describe servicecomando .kubectl describe service public-svcLa siguiente salida de ejemplo es una versión condensada de la salida después de ejecutar
kubectl describe service. LoadBalancer Ingress muestra la dirección IP externa expuesta por el servicio. IP muestra las direcciones internas.Name: public-svc Namespace: default Labels: <none> Annotations: <none> Selector: app=public-app ... IP: 10.0.39.110 ... LoadBalancer Ingress: 203.0.113.187 ... TargetPort: 80/TCP NodePort: 32068/TCP ... Session Affinity: None External Traffic Policy: Cluster ...