Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Equilibrador de carga del servicio Contrail

 

’Echemos un vistazo al equilibrador de carga del servicio y a los objetos relacionados.

Figure 1: Equilibrador de carga de servicio
Equilibrador de carga de servicio

Los elementos destacados Figure 1 en son:

  • Cada servicio se representa mediante un objeto loadbalancer.

  • El objeto de equilibrador de carga incluye una propiedad loadbalancer_provider. Para la implementación de servicios, se implementa un nuevo tipo de loadbalancer_provider llamado Native.

  • Para cada puerto de servicio se crea un objeto Listener para el mismo loadbalancer de servicio.

  • Para cada agente de escucha, habrá un objeto de conjunto.

  • La agrupación contiene miembros, según el número de pods de back-end, una agrupación puede tener varios miembros.

  • Cada objeto miembro en el pool se asignará a uno de los pods de back-end.

  • Contrail-Kube-Manager escucha Kube-apiserver para K8S servicio y, cuando se crea un tipo custerIP o loadbalancer de servicio, se crea un objeto loadbalancer con loadbalancer_provider propiedad nativa.

  • Loadbalancer tendrá una dirección IP virtual, que es la misma que la serviceIP.

  • El IP/VIP de servicio se vinculará a la interfaz de cada pod de back-end. Esto se realiza con un controlador de equilibrador de carga ECMP.

  • La vinculación de Service-IP a las interfaces de pods de back-end crea un ECMP de siguiente salto en Contrail y se equilibra la carga del tráfico de la puerta de enlace de origen hacia uno de los pods de back-end directamente. Más adelante’, mostraremos el prefijo ECMP en’la tabla VRF s.

  • El administrador de contrail-Kube sigue escuchando la apiserver de Kube-para cualquier cambio, basado en la lista Pod en los puntos de conexión, conocerá los pods de back-end más actuales y actualizará los miembros en el pool.

Lo más importante a entender en Figure 1, como se mencionó anteriormente, es que, en contraste con el equilibrador de carga Neutron heredado (y el equilibrador de carga de’entrada que tratamos más adelante), no hay ningún proxy de capa de aplicación en este proceso. La implementación del servicio Contrail se basa en el equilibrio de carga basado en la capa 4 (capa de transporte) ECMP.

Contrail objetos de equilibrador de carga

Hemos’hablado mucho acerca de la contrail objeto equilibrador de carga, pero quizás se pregunte cuál es exactamente lo que parece. Es’hora de profundizar un poco más para mirar los equilibradores de carga y los objetos de soporte: Listener, pool y members.

En una Contrail el programa de instalación puede extraer los datos de objeto de Contrail UI, CLI (espiral) o herramientas de interfaz de usuario de terceros basadas en API de REST. En la producción, dependiendo de cuál esté disponible y de utilidad, puede seleccionar su favorito.

Deje’que se explore el objeto de equilibrador de carga con rizo. Con la herramienta rizo basta con que el FQDN de la dirección URL señale al objeto.

Por ejemplo, para buscar la dirección URL del objeto de equilibrador de carga para el servicio Service-web-clusterip a través de la lista de equilibradores de carga:

Ahora, con una dirección URL de equilibrador de carga específica, puede extraer los detalles específicos del objeto LB:

El resultado es muy exhaustivo e incluye muchos detalles que no son de interés para nosotros en este momento, salvo por unos pocos detalles que merece la pena mencionar:

  • En loadbalancer_properties, la dirección IP del servicio de uso de las LB como su dirección VIP.

  • La LB está conectada a un agente de escucha mediante una referencia.

  • El loadbalancer_provider atributo es nativo, una nueva extensión para implementar la capa 4 (capa de transporte) ECMP para el servicio Kubernetes.

En el resto de la exploración de LB y sus objetos relacionados, deje’uso de la interfaz de usuario contrail heredada.

Tip

También puede utilizar fácilmente la nueva interfaz de usuario de Contrail comando para hacer lo mismo.

Para cada servicio hay un objeto LB, en la Figure 2 , la captura de pantalla muestra dos objetos de lb:

  • ns-user-1-service-web-clusterip

  • ns-user-1-service-web-clusterip-mp

Figure 2: Lista de objetos de equilibrador de carga
Lista de objetos de equilibrador de carga

Esto indica que se crearon dos servicios. El nombre del objeto’del equilibrador de carga del servicio se compone conectando el nombre NS con el nombre del servicio y, por tanto, puede indicar los nombres de los dos servicios:

  • Service-web-clusterip

  • Service-clusterip-MP de la web

Haga clic en el icono de triángulo pequeño que aparece a la izquierda del primer objeto equilibrador de carga NS-User-1-Service-web clusterip para expandirlo, luego haga clic en el icono de vista de JSON avanzada de la derecha, y obtendrá información’detallada similar a lo que ve en la captura de rizo. Por ejemplo, el objeto VIP, Load balancer_provider, Load balancer_listener que hace referencia a él, etc.

Figure 3: Equilibrador de carga Contrail
Equilibrador de carga Contrail

Desde aquí puede seguir expandiendo el objeto loadbalancer_listener haciendo clic en el carácter + para ver el detalle como se muestra en la Figure 3. A’la vez a ll se ve una loadbalancer_pool; expándalo de nuevo y verás el participante. Puede repetir este proceso para explorar los datos del objeto.

Agente de escucha

Haga clic en el nombre de LB y seleccione escucha, luego expándalo y visualización de los detalles con el formato JSON y obtendrá los detalles de la escucha. La escucha escucha en el puerto de servicio 8888 y un grupo de la Figure 4hace referencia a él.

Figure 4: Agente de escucha
Agente de escucha
Tip

Para ver los parámetros detallados de un objeto en formato JSON, haga clic en el triángulo que aparece a la izquierda del nombre de equilibrador de carga para expandirlo y, a continuación, haga clic en el icono vista avanzada de JSON de la esquina superior derecha de la vista expandida. Este libro se utiliza mucho en la vista de JSON para explorar objetos diferentes de Contrail.

Grupo y miembro

El hecho de repetir este proceso de explorative le llevará al grupo y a los dos miembros. El miembro está en el puerto 80, que se asigna al contenedor targetPort en Pod, tal como se muestra en la Figure 5 y la Figure 6.

A continuación’, examinamos la tabla vRouter VRF de la caja POD para mostrar contrail detalles de funcionamiento del equilibrador de carga del servicio ECMP. Para comprender mejor el mapeo de 1 a N entre equilibrador de carga y escucha que se muestra en la ilustración de objeto de equilibrador’de carga, también se ofrece un ejemplo de servicio de varios puertos en nuestra configuración. Hemos’concluido la sección del servicio clusterIP inspeccionando la tabla de flujo del vRouter para ilustrar el flujo de trabajo del paquete de servicios.

Figure 5: Grupos
Grupos
Figure 6: Miembros
Miembros