Capítulo 25: Modelo de Red Avanzada Kubernetes

Kubernetes avanzada Modelo Red

Este artículo se comparten los cinco aspectos siguientes:

  1. Kubernetes contexto modelo de red
  2. Pod exactamente cómo Internet?
  3. Servicio exactamente cómo trabajo?
  4. ¿Qué? El balanceo de carga también es sub interna y externa?
  5. Tiempo de reflexión

Kubernetes contexto modelo de red

img

red recipiente acoplable se originó en la red. Acoplable utiliza un modelo relativamente simple de red, es decir, dentro del puente más las reservas internas IP. La ventaja de este diseño es que la red y el mundo exterior se desacopla del recipiente, sin ocupar los recursos del host IP o anfitrión, es totalmente virtual.

Está diseñado para ser: Cuando se necesita para acceder al mundo exterior, utilizará este método para tomar prestado IP de SNAT nodo de servicio para salir al exterior. Por ejemplo, cuando el recipiente tiene que proporcionar servicios, y es la tecnología DNAT usado, que es para abrir un puerto en el nodo, entonces iptable o algún otro mecanismo, el flujo del proceso en el recipiente para lograr sus objetivos.

El problema es que el modelo, que es la red externa no puede distinguir el tráfico de la red de contenedores, que es el tráfico de la red de acogida. Por ejemplo, si el tiempo para hacer una alta disponibilidad, 172.16.1.1 y 172.16.1.2 es tener las mismas características de dos contenedores, entonces necesitamos tanto ligado a un grupo de prestación de servicios, pero esta vez se encontró que por el aspecto exterior nada en común a ambos, que son el endeudamiento puerto host IP, es difícil tanto de transportes y recoge juntos.

img

Sobre esta base, Kubernetes proponen un mecanismo de este tipo: es decir, cada vaina, que es una función de recoger pequeños grupos debe tener su propia "tarjeta de identidad", o ID. En la pila de protocolos TCP, el ID es la dirección IP.

Esta IP es realmente pertenecen a la vaina, el mundo exterior no importa con qué método debe darle. Pod de acceso IP a este servicio es el acceso a su verdadero rechazar cualquier medio o alterado. Tal como en el acceso a la IP 10.1.1.1 10.1.2.1 Pod, los resultados a la 10.1.2.1, encontramos que es real pedido ordenador central IP, en lugar de la dirección IP de origen, esto no está permitido. se le pedirá a la vaina interna para compartir la propiedad intelectual, a fin de resolver cómo algunos de contenedor carácter funcional atómica convertido en un asunto de implementación.

El problema que queda es que nuestros medios de despliegue. Kubernetes sobre cómo lograr este modelo es realmente no hay límite, con la red subyacente para controlar un desvío router externo es posible; si quieres desacoplamiento, además de una capa con la red superpuesta red superpuesta en la parte superior de la red subyacente, esto también es posible a. En resumen, siempre que se le puede exigir el fin del modelo.

Pod exactamente cómo internet

Los paquetes de red de la red de contenedores transmiten exactamente cómo?

img

Podemos mirar a las dos dimensiones siguientes:

  • capas de protocolo
  • topología de red

La primera dimensión es el nivel de protocolo.

TCP pila de protocolo y su concepto es el mismo, la necesidad de agrupar a partir de dos, tres, cuatro capas de, de derecha a izquierda cuando el contrato, es decir, los datos de aplicación anteriores, y luego enviado a un puerto TCP o UDP cuatro protocolo de capa, continúa transmitiendo hacia abajo, además de la cabecera IP, la cabecera de MAC puede ser acoplado enviado. Cuando el paquete recibido en el orden inverso, primero la liberación de la cabecera de MAC, la cabecera IP y luego se quitó, y finalmente encontró un necesidades del proceso a ser recibidas por el número de puerto del protocolo.

La segunda dimensión es la topología de red.

Un problema a ser resuelto por el recipiente de envase en dos pasos: primero, la forma de saltar de un espacio de acogida del recipiente (c1) el espacio (Infra), un segundo paso, cómo llegar al extremo distal del espacio de acogida.

Mi opinión personal es que las soluciones de red de contenedores pueden ser considerados por los tres niveles de acceso, el canal de control de flujo.

  • El primero es el acceso, que se encuentra entre nosotros y el contenedor de host que es un mecanismo que se utiliza para realizar la conexión, tales como Veth + puente, Veth + par de tal manera clásica, existen nuevos mecanismos para el uso de alta versión del kernel y otras formas (por ejemplo, MAC / IPvlan, etc.) para el paquete enviado al espacio host.
  • El segundo es el control de flujo, que yo no apoyo a programas de directivas de redes, si es compatible, sino también la manera en que para lograr. Cabe señalar que es necesario para lograr una determinada manera en un punto clave en la ruta de datos debe pasar a través. Si la ruta de datos no pasa por el punto del gancho, no va a funcionar.
  • El tercero es el canal, es decir, entre los dos anfitriones se logra a través de lo transmisión de paquetes. Tenemos una variedad de formas, como para encaminar el camino, puede ser dividido en las rutas BGP específicos o rutas directas. Hay una gran variedad de tecnologías de túneles. Nuestro objetivo final es lograr un paquete dentro del recipiente a través del recipiente, a través de la capa de acceso alcanza el host, el host a través del módulo de control de flujo (si la hay) para el canal alcanza el extremo opuesto.

Uno del esquema más sencillo de enrutamiento: franela-host-gw

Este programa utiliza cada nodo segmentos de red exclusiva, cada subred será obligatoria para un nodo, Gateway también se establece a nivel local, o directamente en los puertos internos cni0 este puente. La ventaja de este programa es sencillo de manejar, la desventaja es que no migran a través del nodo de la vaina. Es decir, después de la IP, el segmento ya es parte del Nodo no será capaz de migrar a otro nodo.

img

La esencia de esta solución es que se proporciona la tabla de rutas, como se muestra en la figura. Luego, a medida que se recita.

  • La primera es muy simple, vamos a añadir esta línea para ajustar el tiempo de la tarjeta. se especifica mi ruta por defecto por el cual IP se ha ido, ¿cuál es el dispositivo predeterminado;
  • La segunda es una retroalimentación sobre el estado de subred. Tengo que decir que este segmento es 10.244.0.0, la máscara es 24, que es la dirección de la pasarela está en el puente, que es 10.244.0.1. Esto significa que la red de cada paquete se envían a los IP en el puente;
  • Un tercer retroalimentación final sí derecha derecha. Si la red es 10.244.1.0 (a la derecha en la figura de subred), ponemos IP (10.168.0.3) en su tarjeta de anfitrión como puerta de entrada. Es decir, si el paquete es enviado a 10.244.1.0 este segmento, simplemente complacer 10.168.0.3 como puerta de entrada. La explicación detrás sin nada que hacer.

Luego, busquen en el paquete al final es cómo ejecutar hasta?

Después de asumir el recipiente (10.244.0.2) quiere enviar un paquete a 10.244.1.3, que produce en el local de paquetes TCP o UDP, y luego llenar sucesivamente la dirección de IP de pares, la dirección MAC de Ethernet del local, así como la fuente MAC pares MAC. Generalmente locales establecerá una ruta por defecto, la ruta por defecto será cni0 IP como su puerta de enlace predeterminada, el peer MAC es la dirección MAC de la puerta de enlace. Este paquete puede ser enviado al puente para ir. Si el presente segmento en el puente, se puede resolver mediante el intercambio de la capa MAC.

En este caso, no pertenecen a un segmento de red IP, por lo que el protocolo se envía a la pila de host al que se procesará el puente. Anfitrión pila de protocolos que acaba de encontrar una dirección MAC de los pares. 10.168.0.3 lo utilizan como una puerta de entrada a través de la sonda ARP local, se consiguió la dirección MAC de 10.168.0.3. Que se ensambla por capas de la pila de protocolos, hemos llegado al final, el relleno Dst-MAC es la dirección MAC de los adaptadores de host, la derecha, de modo que el paquete enviado a la eth0 anfitrión de pares a partir de eth0.

Así podemos ver que hay una limitación implícita, dirección MAC, debe ser capaz de llegar a la figura anterior, después de que el final del llenado, pero si no entre los dos host conectado a la segunda planta, a través de un número de puertas de enlace intermedios, algunos de enrutamiento sofisticado, entonces el MAC no será directa, no se utiliza este esquema. Cuando el paquete llega a la dirección MAC de los pares y se encontró este paquete es realmente a ella, pero no son su propia IP, se inició el proceso hacia adelante, para apilar las bolsas, después de expulsar ir de nuevo, acaba de encontrar 10.244. 1.0 / 24 tiene que enviar a la pasarela 10.244.1.1, cni0 para alcanzar el puente, se encontrará la dirección MAC correspondiente 10.244.1.3, a continuación, a través del mecanismo de puente, en el paquete llegado al extremo del recipiente.

Como se puede ver, todo el proceso es siempre dos, tres, cabello cuando llegan a ser de dos pisos, hacer la ruta, que es un pequeño anillo gran cuello. Este es un esquema relativamente simple, si salir del túnel de medio, el túnel puede ser un VXLAN dispositivo, en este momento ruta no directo de llenado, el extremo de llenado del par de número túnel.

¿Cómo funciona exactamente Trabajo de Servicio

El servicio es en realidad un mecanismo de equilibrio (equilibrio de carga) de carga.

Creemos que es una del lado del usuario (del lado del cliente) equilibrio de carga, es decir RIP para conversiones VIP en el lado del usuario se ha completado, no es necesario llegar a una centralizada o un Nginx es un ELB tales componentes de toma de decisiones.

img

Su aplicación es tal que: un primer grupo compuesto por un conjunto de funciones Pod extremo posterior, y después definir un acceso IP virtual como una entrada en el extremo delantero. En general, dado que la propiedad intelectual no es fácil de recordar, estamos enviando un nombre de dominio DNS, el nombre de dominio después de que el cliente para obtener acceso a la dirección IP virtual a continuación en IP real. Kube-proxy es la realización del núcleo del mecanismo, se esconde una gran complejidad. Su mecanismo de trabajo es controlar los cambios en la vaina / Servicio por apiserver (por ejemplo, no se añade Servicio, Pod) y la alimenta a las normas locales o procesos en modo de usuario.

Una versión del servicio LVS

Vamos a hacer realidad una versión LVS de servicio. LVS es un mecanismo especial para equilibrar la carga del núcleo. Funciona de la cuarta planta, el rendimiento será mejor que el alcanzado con en iptable.

Supongamos que estamos un Kube-proxy, un servicio, obtener la configuración, como se muestra a continuación: Tiene una la IP del clúster, el puerto IP es 9376, las necesidades de contenedores para ser alimentados al puerto 80, hay tres operativa la vaina, eran 10.1.2.3,10.1.14.5,10.1.3.8 su IP.

img

Que hay que hacer es:

Paso 1, para unirse a una VIP local (spoofing kernel)

ip route add to local 192.168.60.200/32 dev eth0proto kernel

Primero tiene que asegurarse de que tiene un núcleo de una dirección IP virtual, la cual es LVS mecanismo de la decisión de trabajo, ya que funciona en el cuarto piso, no se preocupan por el reenvío de IP, IP es el único piensan que será dividido en su propio TCP esta capa o UDP. En el primer paso, hemos creado el IP en el kernel, para decirle al núcleo por lo que tiene una dirección IP. Hay maneras de lograr mucho, utilizamos aquí es la ruta ip añadir directamente manera locales, a modo de complemento en el dispositivo simulado IP maniquí también es posible.

Paso 2, crear un servidor virtual para el IPVS de IP virtual

ipvsadm -A -t 192.168.60.200:9376 -s rr -p 600 

Tengo que decir que el equilibrio de carga para distribuir el IP, el último parámetro es el número de la estrategia de distribución y así sucesivamente. IP del servidor virtual es en realidad nuestra IP del clúster.

Paso 3, crear el servidor real apropiado para el servicio IPVS.

ipvsadm -a -t 192.168.60.200:9376 -r 10.1.2.3:80 -m 
ipvsadm -a -t 192.168.60.200:9376 -r 10.1.4.5:80 -m 
ipvsadm -a -t 192.168.60.200:9376 -r 10.1.3.8:80 -m

Tenemos que configurar el servidor real al servidor virtual, lo que es la prestación de servicios reales de fondo Sí. Por ejemplo, acabamos de ver tres de la vaina, por lo que tomó tres de la IP asignada al servidor virtual, totalmente sola arriba en él. Kube-proxy con este trabajo es similar. También necesita supervisar sólo algunos cambios de la vaina, tales como el número de la vaina en cinco, entonces las reglas deberían ser cinco. Si hay un muerto o vaina fue muerto, entonces sería perder una consecuencia. O todo el servicio es revocado, entonces todas estas reglas serán eliminados. Por lo que es en realidad haciendo un trabajo a nivel de gestión.

¿Qué? El balanceo de carga también se divide en interna y externa

Por último, se introduce el tipo de servicio se puede dividir en las siguientes cuatro categorías.

ClusterIP

Dentro de un clúster virtual IP, la IP se une a la parte superior del Grupo Pod de un servicio de pila, que es el servicio por defecto. La desventaja es que esta es la única forma para el clúster dentro del nodo.

NodePort

Agruparse para llamadas externas. El nodo de servicio que lleva en un puerto estático, el número de puerto y la correspondencia de servicio, el usuario será fuera del clúster por <NodeIP>:<NodePort>llamar al modo de servicio.

LoadBalancer

Para interfaz de ampliación del proveedor de la nube. Al igual que Ali nube, como proveedores de la nube de Amazon están todos maduro mecanismos LB, estos mecanismos pueden ser implementados por un gran grupo, con el fin de no perder esta capacidad, los proveedores de nubes pueden extenderse por esta interfaz. En primer lugar, se creará automáticamente NodePort y ClusterIP estos dos mecanismos, proveedores de nube pueden optar por LB directamente vinculados a estos dos mecanismos, o ambos no están directamente relacionados con servicios de fondo de la vaina del RIP ELB nube proveedor es posible a.

ExternalName

Abandonar el mecanismo interno, dependencia de las instalaciones externas, como un usuario particularmente fuerte, sintió que ofrecemos son de ninguna utilidad, es poner en práctica su propia, esta vez un nombre de dominio y un servicio se atan, todo el trabajo es un balanceo de carga externa logrado.

A continuación se muestra un ejemplo. Se aplica con flexibilidad ClusterIP, NodePort y otros servicios, pero también combina los proveedores de nube ELB, en un sistema de producción de bienes muy flexible y altamente escalable, disponible.

img

En primer lugar, utilizamos ClusterIP hacer la entrada de servicio de la función de la vaina. Como se puede ver, si hay tres Pod, entonces hay tres IP del clúster de servicio como su entrada de servicio. Estas son la forma del lado del cliente, cómo hacer un poco de control en el lado del servidor que?

En primer lugar Ingress jugará parte de la vaina (Ingress se K8S añadió más tarde un servicio, en esencia, es una pila de vaina homogénea), entonces estos Pod organizar expuestos a un NodePort de IP, el trabajo en este K8S más.

Un acceso del usuario a cualquier puerto de entrada 23456 Pod tendrá acceso al servicio, detrás de la cual hay un controlador, y el extremo trasero del Servicio IP Ingress será gestionado, transferido finalmente a ClusterIP, y luego fue trasladado a nuestra función de la vaina. Fuimos al tope antes mencionado proveedores ELB nube, podemos dejar ir ELB puerto 23456 escuchas en todos los nodos del clúster, siempre que el servicio en el puerto 23456, se considera una instancia de la carrera de entrada.

El flujo a través de su conjunto para resolver nombres de dominio externos alcanzó el ELB nube de proveedores con shunt, ELB través de balanceo de carga y luego volver a llamar a las propiedades de la vaina por ClusterIP alcance de Ingreso, a modo de entrada NodePort. Tal sistema se ve rico, robusto mejor. No hay ningún punto único de un enlace, link tiene también la gestión y la retroalimentación.

Tiempo de reflexión

  1. Exactamente cómo la red convivencia contenedor de capa con la red de acogida? Seleccione la red subyacente o red superpuesta? Se convirtió en superposición o para distinguir acuerdo con la escena? Es la forma en que solemos pensar en su trabajo?
  2. El servicio también puede ser la forma de lograr?
  3. ¿Por qué un sistema de archivo contenedor para enérgicamente participar en el descubrimiento de servicios y balanceo de carga?

Esta sección resume

El contenido principal de esta lección de parada aquí, se resumen brevemente a continuación:

  • Nosotros entendemos fundamentalmente el origen evolutivo Kubernetes el modelo de red, donde PerPodPerIP la comprensión de las intenciones;
  • Cosas siguen siendo la misma red, de acuerdo con el modelo de abajo de la capa 4 está proceso de contratación, la capa de liberación está recibiendo paquetes de todos modos proceso, el recipiente es también verdadera red;
  • Ingreso y otros mecanismos están en un nivel superior (servicio <-> puerto) para facilitar el despliegue de un conjunto de servicios externos, mediante la implementación de un ejemplo real disponible, esperamos que el concepto de articulación de la entrada + IP del clúster + PodIP otros términos, la introducción de la comprensión de la comunidad , nuevo mecanismo para los nuevos objetos de recursos.

Supongo que te gusta

Origin www.cnblogs.com/passzhang/p/12636285.html
Recomendado
Clasificación