Usar NCache en AWS Elastic Kubernetes Service (EKS)

Clúster de Kubernetes elástico con contenedores Docker

AWS Elastic Kubernetes Service (EKS) es un servicio de Kubernetes administrado por Amazon Web Services (AWS) que le permite configurar su clúster de Kubernetes junto con los últimos parches y actualizaciones de la infraestructura subyacente que lo respalda.

Si está trabajando con .NET/.NET Core o aplicaciones Java que se ejecutan en EKS y desea utilizar NCache para mejorar su rendimiento y escalabilidad durante los picos de carga de transacciones, puede estar seguro de que NCache es totalmente compatible con este entorno.

Mire este video para ver lo fácil que es implementar NCache en su clúster de Amazon Elastic Kubernetes.

NCache Despliegue en EKS

En la nube de AWS tenemos un balanceador de carga clásico frente a un controlador de entrada, que se ejecuta dentro del clúster de Kubernetes. El recurso de entrada de Kubernetes que implementa este controlador de entrada enruta las solicitudes HTTP que provienen del balanceador de carga a los diferentes servicios que se ejecutan dentro del clúster. Ahora, en cualquiera de estos entornos de aplicaciones distribuidas, también necesitamos una solución de almacenamiento en caché distribuida, que proporcione escalabilidad, confiabilidad y alta disponibilidad, al realizar operaciones de lectura rápida y ahí es donde NCache entra en juego.

ncache-despliegue_eks

NCache se puede implementar en su clúster de EKS como NCache servidores que se ejecutan en contenedores de Linux y estos contenedores se alojan dentro de los pods de Kubernetes. Las direcciones IP de estos NCache los servidores son resueltos por el Servicio de descubrimiento de caché, que es un servicio sin cabeza de Kubernetes y las direcciones IP de allí son utilizadas por las aplicaciones cliente para crear identificadores de caché con los que pueden conectarse al NCache clúster y comenzar a realizar operaciones de administración y CRUD.

Los siguientes son los parámetros importantes de la demostración que realizaremos hoy. Él NCache Los servidores que se implementarán en el clúster de EKS utilizarán la siguiente imagen de Docker 'alachisoft/ncache' con una etiqueta de 'servidor-empresarial-linux-5.0.2'.

detalles del entorno de demostración

Para obtener todas las imágenes que NCache proporciona, déjame ir a la Alachisoft sitio web. Selecciona el 'Descargar' pestaña y luego haga clic en 'NCache'. Esto te llevará a la NCache Centro de descargas. Desplazándome hacia abajo hasta la sección 'Docker Hub', simplemente puedo hacer clic en la segunda entrada desde arriba y esto me dirigirá a la Centro acoplable página de Alachisoft NCache. Aquí puedes ver todas las imágenes que NCache proporciona. Volviendo a los parámetros, la imagen que se utilizará tiene la NCache Enterprise Edición 5.0 SP2 con un .NET Core instalación. La memoria caché en clúster que crearemos utilizará la topología de partición de réplica. Las dos aplicaciones de prueba que se utilizarán son las siguientes. tenemos uno .NET Core Aplicación y una aplicación Java y, en ambos casos, mostraremos el aspecto de almacenamiento en caché de datos de la aplicación de NCache. Empezaremos con 2 NCache servidores y luego aumentar ese número a 3. Para demostrar eso, podemos hacer cambios dinámicos en el NCache estado del clúster sin afectar el rendimiento del cliente.

Crear clúster de EKS

Ahora estamos listos para comenzar nuestra demostración. Lo primero que debe hacer, por supuesto, es configurar la infraestructura de EKS en la que implementaremos nuestro NCache recursos del servidor y del cliente. Aquí, estoy en la página de inicio de AWS para el servicio EKS. Aquí encontrará toda la información necesaria para poner en marcha su primer EKS Cluster. La información incluye los requisitos previos, como el rol de IAM y las políticas que se requieren.

crear-eks-cluster

Además, entra en detalles sobre la creación de una VPC, en la que implementará su clúster de EKS.

crear-eks-cluster2

Más abajo, encontrará información sobre la instalación y el uso de la CLI de AWS y las utilidades de línea de comandos 'kubectlc' para acceder y administrar el clúster de Kubernetes.

crear-eks-cluster3

También se incluye información sobre el grupo de nodos administrado de Kubernetes, que proporcionará los nodos trabajadores en los que implementará sus recursos de Kubernetes. Usaré la información proporcionada aquí para crear un clúster de EKS en una VPC con 2 subredes públicas y 2 privadas y, una vez que mi clúster de EKS esté en funcionamiento, continuaré con el resto de la demostración.

Con estos pasos proporcionados en la página de inicio, ya creé los roles de IAM y la infraestructura de VPC para mi clúster de EKS. Ahora, voy a realizar estos pasos para crear la infraestructura de EKS.

consola-de-administración-aws

Entonces, para eso, estoy en mi consola de administración de AWS y voy a hacer clic en el enlace de Elastic Kubernetes Service. Esto me llevará a la página principal del servicio EKS. Debajo del encabezado "Amazon EKS" en el panel izquierdo de la página, voy a hacer clic en el vínculo "Clústeres".

consola-de-administración-de-aws2

En este momento, no tengo ningún clúster de EKS. Para eso, voy a hacer clic en el enlace 'crear clúster'.

crear-eks-cluster4

Aquí voy a dar en los parámetros de configuración. Entonces, voy a comenzar con el nombre del clúster de EKS, que es 'eks-ncache'. Voy a seleccionar '1.14' para 'Versión de Kubernetes'. Voy a seleccionar el 'rol de IAM' y la 'VPC' también. Voy a seleccionar el grupo de seguridad y todo lo demás se mantendrá predeterminado y voy a dar una etiqueta para el clúster de EKS y una vez que todo esto esté hecho, voy a hacer clic en el botón 'crear'.

Ahora que la clúster EKS se está creando, voy a pausar el video, porque esto llevará algún tiempo. En la página de mi clúster EKS puedo ver que 'eks-ncache' está activo'. El segundo paso es crear el grupo de nodos de administración y para eso me desplazaré hacia abajo hasta la sección "Grupos de nodos" y haré clic en el botón "Agregar grupo de nodos".

crear-grupo-de-nodos

Voy a dar los parámetros comenzando con el nombre del grupo de nodos y voy a seleccionar el 'rol de IAM'.

iam-rol

Seleccionaré el 'par de claves SSH', haré clic en 'Siguiente'.

par de claves ssh

Aquí voy a usar el siguiente 'tipo de AMI' y para el 'tipo de instancia', usaré 't3.small'. Después de esto, voy a hacer clic en 'Siguiente'.

tipo ami

Voy a seleccionar 2 nodos de trabajo, haga clic en 'Siguiente'.

nodos-trabajadores

Y aquí, después de ver los parámetros, voy a hacer clic en 'Crear' para comenzar la creación de mi grupo de nodos. Vemos aquí que el grupo de nodos está en estado de creación en este momento, así que pausaré el video. Vemos aquí ahora que mi grupo de nodos de EKS está 'activo' y la creación de mi infraestructura de EKS está completa.

crear-nodo-grupo2

En la terminal de PowerShell de mi máquina cliente, usaré la CLI de AWS para crear mi archivo 'kubeconfig', para obtener acceso al clúster de EKS y se ha creado el archivo 'kubeconfig'. Ahora, voy a confirmar mi conexión al clúster de EKS y vemos los dos nodos trabajadores que están incluidos en el grupo de nodos administrados por EKS.

cmd

Implementar controlador de ingreso

Lo primero que voy a hacer es implementar los recursos de Kubernetes necesarios para el controlador de entrada. Pasando al diagrama de arquitectura, el controlador de entrada que se muestra aquí se usará para implementar el recurso de entrada que implementaremos más adelante.

ncache-despliegue_eks

En nuestra demostración, usamos el controlador NGINX Ingress debido a su popularidad. En primer lugar, implementaremos los recursos obligatorios necesarios para que NGINX Ingress Controller se ejecute en cualquier entorno de Kubernetes y luego implementaremos los recursos específicos de AWS, que activarán un balanceador de carga clásico frente a NGINX Ingress. Controller y permita que NGINX Ingress Controller reciba solicitudes HTTP desde fuera del clúster de Kubernetes a través de este balanceador de carga clásico.

Ahora voy a implementar los recursos obligatorios necesarios para el controlador de entrada NGINX. Las definiciones de esos recursos se pueden encontrar siguiendo la URL que se proporciona en la sección resaltada. Entonces, sin más, comencemos y los recursos obligatorios se han desplegado. Aquí tengo abierto el archivo YAML, que usaré para implementar dos recursos relacionados con el controlador NGINX Ingress.

yaml

El primer recurso es el servicio de equilibrador de carga que se usará para activar un equilibrador de carga clásico frente al controlador de entrada NGINX. Como podemos ver en la sección de anotaciones, el balanceador de carga funcionará en la capa 7 enrutando las solicitudes HTTP al controlador de ingreso NGINX. Bajando, el otro recurso que implementaremos es el recurso 'ConfigMap', que contiene los parámetros de configuración sobre cómo se comportará el controlador de entrada NGINX dentro del clúster de Kubernetes.

Ahora voy a implementar esos recursos usando el 'aplicar kubectl' comando y los recursos han sido desplegados. Permítanme acercarme a mi tablero EC2 y confirmar que el balanceador de carga se ha activado. Si actualizo esta página, verá que se introdujo un nuevo balanceador de carga. Permítanme hacer clic en el enlace "balanceadores de carga" y aquí está el balanceador de carga frente al controlador de entrada NGINX.

tablero ec2

Despliegue NCache Servidores

Ahora desplegaremos NCache Servidores al Clúster EKS. Volviendo al diagrama de arquitectura nuevamente, estos NCache Los servidores se utilizan para crear la memoria caché en clúster dentro del clúster de EKS. Aquí está el archivo YAML para implementar el NCache servidores al clúster de Kubernetes. Como podemos ver, este es un recurso de implementación que girará hasta NCache servidores dentro del clúster de EKS. Los siguientes son los puertos en los que NCache Los servidores estarán escuchando. Tenemos el puerto 'management-tcp' con un valor de 8250, en el que se NCache los servidores escucharán las solicitudes de conexión de los clientes. Tenemos el puerto 'management-http' con un valor de 8251 en el que se NCache gerente web estará escuchando y luego tenemos el 'puerto de cliente' con un valor de 9800, en el que el NCache los servidores escucharán las solicitudes de operación CRUD del cliente.

yaml2

Usando el 'aplicar kubectl' comando, ahora voy a crear el NCache pods de servidor en mi clúster de EKS y ahora verifiquemos el estado de los pods. Los Pods están funcionando. tenemos 2 NCache Servidores con las direcciones IP que se muestran aquí.

cmd2

NCache Servicio de descubrimiento

Ahora desplegaremos el NCache Servicio de descubrimiento. El Servicio de descubrimiento de caché es un servicio autónomo que se ejecuta sobre el NCache Módulos de servidor. Su función es resolver las direcciones IP que serán utilizadas por las aplicaciones cliente, cuando quieran conectarse con el Caché agrupado.

ncache-despliegue_eks3

Aquí está el archivo YAML para el servicio sin cabeza de Kubernetes. Como podemos ver, el nombre del servicio será 'cacheserver'. Al observar las secciones 'selector' y 'ports', vemos que este servicio se ejecutará sobre el NCache Módulos de servidor.

yaml3

Ahora voy a crear el recurso Cache Discovery Service en mi clúster de EKS usando el 'aplicar kubectl' dominio. Ahora que se ha creado el servicio, veamos la descripción del mismo. Podemos ver que los 'Endpoints' que el servicio resuelve para contener las direcciones IP de los NCache servidores, con las direcciones IP que se muestran en la sección resaltada, siendo las mismas que las direcciones IP que se muestran aquí.

cmd3

NCache Servicio Gerente

vamos a estar usando el NCache Web Manager, para crear nuestro caché en clúster y agregarle nodos. para exponer el NCache Web Manager, vamos a implementar otro recurso de servicio de Kubernetes. Aquí está el archivo YAML para el servicio Kubernetes, que expondrá el NCache gerente web

yaml4

Como podemos ver el 'nombre' del servicio va a ser 'ncache' y desde la sección 'puertos', vemos que el puerto de 80 se va a asignar al puerto de destino de 8251, en el que el NCache Web Manager estará escuchando. Al mirar la sección 'selector', vemos que el servicio se ejecutará sobre el NCache Módulos de servidor. Este servicio se va a registrar en el backend del recurso Ingress que desplegaremos más adelante y desde allí podremos acceder al administrador web desde nuestro navegador.

Ahora voy a crear el NCache recurso de servicio en mi clúster de EKS usando el 'aplicar kubectl' dominio. Ahora que el servicio ha sido creado, veamos la descripción nuevamente y vemos aquí que los 'Puntos finales' que el NCache se resuelve el servicio, son las direcciones IP de los NCache servidores.

cmd4

NCache Ingreso

Ahora implementaremos el recurso Kubernetes Ingress que expondrá el NCache Web Manager desde nuestro navegador. El recurso Ingress será implementado por el controlador NGINX Ingress. Él NCache El servicio que se va a registrar en el backend de Ingress permitirá que las solicitudes HTTP que llegan a través del equilibrador de carga se enruten al NCache Administrador web para NCache propósitos de gestión. Este es el archivo YAML para el recurso Ingress que implementaremos en el clúster de EKS.

yaml5

El 'nombre' del ingreso es 'ncache' y a partir de las anotaciones, podemos ver que se implementará con el controlador NGINX Ingress. Además, estas anotaciones muestran que usaremos sesiones pegajosas con el NCache Administrador web. Por lo tanto, para no estar rebotando entre las diferentes instancias del administrador web que se ejecutan en los diferentes NCache servidores y podemos crear fácilmente nuestro caché en clúster y agregarle nodos dentro de la misma sesión. En la sección de reglas, vemos que la ruta raíz de la URL se va a asignar a la NCache servicio, que expone la NCache Administrador web.

Ahora vamos a crear el recurso Ingress en nuestro EKS Cluster. Ahora que se ha creado el Ingress, verifiquemos su estado. Ahora vemos que Ingress está en funcionamiento. Verifiquemos la URL del Ingress. La URL se proporciona en la sección 'Dirección'. Si copio esta URL en mi navegador, podré acceder a mi Web Manager. Entonces, viniendo a mi navegador, haciendo clic aquí y pegando la URL y ahora hemos accedido con éxito al NCache Web Manager desde dentro del clúster de Kubernetes.

Crear clúster de caché

Ahora vamos a crear nuestro caché agrupado. Ahora voy a seguir los pasos para crear un caché agrupado usando el NCache Administrador web. Entonces, para comenzar, haga clic en el botón 'Nuevo' que se muestra aquí.

crear-caché-cluster

Ahora vamos a darle un nombre a la memoria caché agrupada, 'democache', haga clic en 'Siguiente'.

nombre-caché

Vamos a utilizar la partición de topología Réplica, en modo 'Asíncrono'.

modo asíncrono

Y ahora voy a agregar el NCache servidores a la memoria caché en clúster. Entonces, haga clic en el botón '+' y agregue el otro servidor también. Con ambos servidores agregados, haga clic en 'Siguiente'.

ncache-servidores

Mantenga todo predeterminado y al final haga clic en 'Finalizar'. Vemos aquí ahora en la ventana principal que el 'democache' se ha creado con éxito.

caché de demostración creado

Para iniciarlo, marque la casilla de verificación junto al nombre del caché y presione 'Iniciar'.

caché de demostración creado2

El caché se ha iniciado con éxito. Ahora voy a hacer clic en la pestaña 'Monitor' para abrir el NCache herramienta de monitoreo.

ncache-herramienta-de-monitoreo

En primer lugar, desde la sección 'Cluster Health', vemos que la memoria caché en clúster está completamente conectada.

salud del clúster

Vemos diferentes contadores de rendimiento del lado del servidor aquí. En la sección 'Recuento', vemos que la cuenta es 0, porque no hemos iniciado ninguna aplicación cliente. Pasando al 'Panel de control del cliente', aquí podrá monitorear el NCache contadores de rendimiento del lado del cliente.

panel de control del cliente

En el 'Panel de informes', obtiene una vista general de los contadores del lado del servidor y del lado del cliente.

panel de informes

Implementar y ejecutar aplicaciones cliente

Con el caché agrupado creado, ahora ejecutaremos nuestras aplicaciones cliente. Aquí está el archivo YAML, que se usará para implementar las aplicaciones cliente en el clúster de EKS.

yaml6

Como se puede ver en el recurso de implementación, que tiene el nombre de cliente, tendremos un Pod, en el que se ejecutarán las aplicaciones cliente. La 'imagen' utilizada se muestra aquí, contiene tanto el .NET Core y aplicaciones Java, así como la NCache instalación del cliente, para que podamos recopilar el lado del cliente NCache contadores de rendimiento Ahora voy a implementar los recursos de mi cliente en el clúster de EKS. Ahora que los recursos han sido creados. Verifiquemos el estado del módulo de cliente. Lo primero que haremos será poner en marcha el .NET Core Solicitud. Dentro del Client Pod, voy a ejecutar el siguiente comando de Shell, "/app/testerdotmet/run.sh servidor de caché democache" eso toma dos parámetros, a saber, el nombre del caché, que es 'democache' y el nombre del servicio sin cabeza, que es 'cacheserver'.

comando

Y vemos ahora que el .NET Core la aplicación se está ejecutando. Viniendo a la NCache Monitor, vemos en la sección 'Estado del clúster' que tenemos 1 cliente y vemos un aumento en la actividad del contador. El conteo va en aumento, ya que el .NET Core la aplicación está volcando datos en el caché y en la sección 'Proceso del cliente' aquí está la IP del Pod en el que se encuentra el .NET Core se está ejecutando la aplicación, así como el ID de proceso de la aplicación. Al llegar al 'Panel de control del cliente', vemos aquí que tenemos contadores del lado del cliente, provenientes del Pod del cliente.

cliente-dashboard2

En el 'Panel de informes', obtenemos una vista general de estos contadores de rendimiento del servidor y del lado del cliente.

informe-panel2

Ahora que la .NET Core la aplicación se está ejecutando, ahora vamos a iniciar la aplicación Java. Al igual que con el .NET Core aplicación, dentro del Pod del cliente, voy a ejecutar el siguiente comando de shell, que toma los mismos parámetros que el .NET Core aplicación, es decir, el nombre de la memoria caché y el nombre del servicio sin cabeza.

cmd5

Y vemos aquí, que la aplicación Java se está ejecutando. Volviendo a la NCache monitor, vemos aquí ahora que hay 2 clientes y bajando a la sección 'Proceso del cliente', vemos otra entrada para el proceso del cliente, que está relacionada con la aplicación Java. Entonces, con esto hemos podido confirmar que las aplicaciones pueden conectarse con el NCache servidores que se ejecutan en el mismo clúster de Kubernetes.

Escalando NCache Médico

Ahora vamos a escalar horizontalmente nuestro NCache Grupo. Lo primero que voy a hacer es escalar el NCache implementación a 3, de modo que tengo otro servidor para agregar al clúster de caché. Ahora que se ha escalado la implementación, veamos las direcciones IP del pod del servidor y aquí vemos otra NCache servidor agregado al clúster de Kubernetes.

cmd6

Y para agregar el nuevo servidor de caché, voy a hacer clic en el enlace 'Ver detalles', frente al nombre del caché.

nuevo-caché-servidor

Bajando a la sección 'Nodos del servidor', haré clic en el botón 'Agregar' e ingresaré la dirección IP del tercer servidor.

agregar-dirección-ip

Ahora que se ha agregado el servidor, voy a iniciarlo y para eso voy a marcar la casilla de verificación junto a la dirección IP y haré clic en 'Iniciar'.

comienzo

Ahora que el servidor de caché se ha iniciado, volvamos a la ventana principal y aquí vemos 3 servidores para el 'democache'.

3servidores

En la ventana del monitor y en la sección 'Recuento', el recuento por nodo se ha reducido debido a la estrategia de equilibrio de carga que está en vigor.

tablero del servidor

Volviendo a la ventana principal, voy a hacer clic en el botón de puntos suspensivos junto al nombre del caché y luego seleccionar 'Mostrar estadísticas', para poder obtener otra vista del clúster de caché. Aquí vemos las particiones activa y réplica, que brindan confiabilidad al tener los datos en 1 nodo de servidor, respaldados por otro nodo de servidor, dentro del mismo clúster de caché.

statistics

Esto nos lleva al final de esta presentación. Si tiene alguna pregunta sobre la demostración que se realizó hoy, o desea saber más sobre las diferentes características que NCache proporciona, por favor no dude en contactarnos en support@alachisoft.com. Gracias.

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.