El desarrollo, la implementación y la administración de aplicaciones se han vuelto más fáciles con la introducción de la contenedorización, razón por la cual la implementación en la nube está ganando cada vez más popularidad. Azure, siendo el mejor en el negocio, proporciona la implementación de Kubernetes más rápida y fácil de usar en forma de Azure Kubernetes Service (AKS).
Para mejorar el rendimiento de la aplicación en el entorno de Azure Kubernetes, NCache debe implementarse y usarse dentro del clúster de AKS. NCache es una solución de almacenamiento en caché distribuida en memoria que aumenta el rendimiento de su aplicación en muchos aspectos a medida que su caché está más cerca de la aplicación. Utilizando NCache, que es de naturaleza distribuida, le permite agregar tantos servidores como necesite para mejorar la latencia, lo que induce una escalabilidad extrema en AKS.
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
NCache Arquitectura de implementación en Azure Kubernetes Service
El diseño general de NCacheLa implementación de Azure Kubernetes Service es así: tiene aplicaciones que están conectadas a un Servicio de descubrimiento de caché. Este servicio es responsable de permitir que los clientes accedan a los módulos del clúster que ejecutan el servicio de caché. También hay un Servicio de puerta de enlace que proporciona un equilibrador de carga para reducir el tráfico a pods específicos en función de la IP del cliente proporcionada.
Un pod es una unidad básica para crear un servicio que garantiza que todos los contenedores estén en el mismo host. Un pod contiene uno o más contenedores que comparten recursos como RAM, CPU y red, pero es mejor tener un contenedor por pod.
El flujo de solicitudes y la estructura de un clúster de AKS con NCache desplegado en él se muestra en el siguiente diagrama.
Para comenzar a usar muchas funciones listas para usar proporcionadas por NCache en su clúster de Azure Kubernetes Service, debe implementar NCache y los servicios necesarios en una configuración de AKS. Los pasos proporcionados a continuación lo ayudarán a comenzar a implementar y usar NCache en el clúster de Azure Kubernetes.
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Paso 1: Crear NCache Despliegue
En Azure Kubernetes Service, cada vez que hablamos de implementar una aplicación o un servicio, necesitamos crear un archivo YAML. Este archivo YAML contiene toda la información necesaria para crear un pod dentro de su clúster de AKS. Déjame mostrarte cómo debería verse tu archivo YAML para crear correctamente un pod que contenga el NCache .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
kind: Deployment apiVersion: apps/v1beta1 # underlying Kubernetes version metadata: name: ncache labels: app: ncache spec: replicas: 2 template: metadata: labels: app: ncache spec: nodeSelector: "beta.kubernetes.io/os": linux containers: - name: ncache image: docker.io/alachisoft/ncache:enterprise-server-linux-5.0.2 ports: - name: cache-mgmt-tcp # for tcp communication containerPort: 8250 - name: cache-mgmt-http # for http communication containerPort: 8251 ... # remaining necessary ports |
Para que el clúster comprenda que lo que está creando será un módulo de implementación, debe mencionar "tipo" como Despliegue. De lo que debe tener cuidado aquí es de la versión subyacente de Kubernetes bajo la etiqueta "apiVersion". Kubernetes sigue modificando este número de versión, por lo que debe tener cuidado al implementar NCache que este número de versión se establece en el número de versión correspondiente de Kubernetes subyacente.
La cantidad de "réplicas" aquí indica la cantidad de pods que tendrá esta implementación, que en este caso es 2. Puede cambiar este valor según sus requisitos. Debajo de la etiqueta "contenedores", proporciona la ruta al NCache Enterprise Imagen de Docker del servidor. Puedes encontrar este camino en Centro acoplable.
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Algunos de los otros requisitos que necesita saber para implementar NCache en el clúster de Azure Kubernetes hay información de puertos. Para que tus clientes interactúen con éxito NCache servidores, debe especificar el número de puerto del contenedor en su archivo YAML.
Principalmente, estos son los requisitos básicos que debe comprender para implementar con éxito NCache en un clúster de AKS. Una vez que se crea este archivo YAML, lo usa para crear pods en AKS.
Crear este archivo YAML es todo lo que tiene que hacer para implementar con éxito NCache en un clúster de AKS. Ejecute el siguiente comando en Azure Cloud Shell y ¡listo! su NCache ¡la implementación ahora es un pod de ejecución completo en Azure Kubernetes Service!
1 |
kubectl create -f [dir]/ncache.yaml |
Paso 2: Crear NCache Servicio de descubrimiento
Fuera del clúster de Kubernetes, cuando habla de clientes de caché que se conectan con servidores de caché, es bastante comprensible que necesiten direcciones IP de los servidores de caché. Estas direcciones IP son estáticas y conocidas por todos los clientes que forman parte de ese sistema. Pero cuando toma los mismos elementos y los coloca dentro del entorno de Kubernetes, la implementación cambia. Dentro de un clúster de Kubernetes, a cada módulo de implementación se le asigna una dirección IP dinámica en tiempo de ejecución que las aplicaciones cliente desconocen. Esta implementación se interpone en el camino de las aplicaciones cliente para identificar NCache servidores para lograr rendimiento y escalabilidad.
Para contrarrestar este problema, Kubernetes le permite crear un servicio fijo en lugar de dinámico. Entonces, al utilizar esto, debe crear un servicio de descubrimiento sin cabeza que permita que su aplicación cliente acceda sin esfuerzo al pod en el que NCache el servicio se está ejecutando. La información proporcionada en este servicio, como un archivo YAML, permite que todas las aplicaciones cliente se conecten a este servicio. Este servicio es entonces responsable de asignar un servidor a cada solicitud de conexión del cliente; todo mientras permanece dentro del clúster de AKS.
Entonces, sin más preámbulos, comencemos a crear el archivo YAML listo para su implementación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: cacheserver labels: app: cacheserver spec: clusterIP: None selector: app: ncache # same label as provided in the ncache YAML file ports: - name: management-tcp port: 8250 targetPort: 8250 - name: client-port port: 9800 targetPort: 9800 |
Su "tipo" debe ser un de coches con el "apiVerison" establecido en la versión subyacente de Kubernetes. Para hacer de este un servicio sin cabeza, debe configurar la etiqueta "clientIP" en ninguna que especifica que su servicio de descubrimiento no tendrá ninguna IP pública asignada. El resto son los puertos necesarios para NCache clientes para comunicarse con el NCache servidores.
Desde aquí, vaya a Azure Cloud Shell y ejecute el comando proporcionado para tener un servicio de detección sin interfaz completamente funcional en ejecución dentro de su clúster de Kubernetes.
1 |
kubectl create -f [dir]/discoveryservice.yaml |
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Paso 3: Crear NCache Servicio de puerta de enlace
Dentro de un clúster de AKS, todo lo que sucede se limita al clúster. Y para que lo uses NCache desde su máquina local, debe haber una manera a través de la cual NCache las operaciones de administración se pueden realizar dentro de ese clúster. Esta es exactamente la razón por la que creamos un servicio Gateway; un servicio que es responsable de acceder, administrar y monitorear NCache desde fuera de Azure Kubernetes Service.
Nuevamente, para usar esta funcionalidad en el clúster, necesita un pod en ejecución. Para crear un pod en ejecución, debe crear un archivo YAML que contenga todas las etiquetas y valores necesarios. Entonces, comencemos escribiendo un archivo YAML para crear un servicio de puerta de enlace para NCache .
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kind: Service apiVersion: v1 # underlying Kubernetes version metadata: name: gateway spec: selector: app: ncache # same label as provided in the ncache YAML file type: LoadBalancer sessionAffinity: ClientIP ports: - name: management-http port: 8251 targetPort: 8251 |
Aquí, para que su clúster de Azure Kubernetes Service sepa que este pod actuará como un servicio para un propósito particular en lugar de implementar cualquier cosa, debe indicar el "tipo" como un . Este archivo también debe mencionar los puertos que necesita un servicio de puerta de enlace para funcionar sin errores. Etiquetar "tipo" como equilibrador de carga establece que este servicio de puerta de enlace será un equilibrador de carga externo que equilibra las solicitudes de los clientes en varios servidores. El punto que debe asegurarse es que "sessionAffinity" esté configurado para ClienteIP para asegurarse de que un cliente sea redirigido al mismo servidor cada vez.
Esta es prácticamente toda la información que necesita para crear un servicio de puerta de enlace para su NCache despliegue. Lo que debe hacer ahora es ejecutar lo siguiente Para crear comando de Azure Shell y AKS creará e iniciará este servicio por usted.
1 |
kubectl create -f [dir]/gatewayservice.yaml |
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Paso 4: crear un clúster de caché
Lo que tienes hasta este punto está funcionando. NCache servidores, un servicio de puerta de enlace y un servicio de descubrimiento para NCache clientela. Lo que necesitas ahora para disfrutar plenamente NCache en su Azure Kubernetes Service es crear un clúster de caché dentro de su clúster de Kubernetes; que es sencillo
Puedes realizar este paso usando NCache Web Manager que viene integrado con el NCache despliegue. Los pasos necesarios para crear correctamente un clúster y agregarle nodos de servidor se proporcionan en NCache docs en Crear caché en clúster. El único giro en este paso son las IP de los servidores que necesita. Estas tienen que ser las mismas direcciones IP que el clúster de Kubernetes ha asignado a sus módulos de caché. Puede obtener estas direcciones IP ejecutando el conseguir vainas comando en Azure Cloud Shell.
Paso 5: crear implementaciones de aplicaciones
Para implementar y ejecutar aplicaciones cliente (ya sea .NET o Java) en su clúster, debe crear un archivo YAML. Su archivo YAML de implementación de cliente debería ser algo como esto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
kind: Deployment apiVersion: apps/v1beta1 # Underlying Kubernetes version metadata: name: client spec: replicas: 1 template: metadata: labels: app: client spec: imagePullSecrets: - name: client-private nodeSelector: "beta.kubernetes.io/os": linux containers: - name: client image: # Your docker client image here ports: - name: port1 containerPort: 8250 - name: port2 containerPort: 9800 |
El "nodeSelector" mencionado en el archivo podría ser ventanas ya que Kubernetes es compatible con ambos sistemas operativos. Además, tiene la ventaja de implementar múltiples aplicaciones cliente dentro del mismo clúster según sus requisitos. Para cada aplicación cliente, debe crear un archivo YAML similar para que cada aplicación se ejecute en un módulo independiente.
Ejecute el siguiente comando en Cloud Shell proporcionado por Microsoft Azure para crear e iniciar correctamente su módulo de aplicación de cliente.
1 |
kubectl create -f [dir]/client.yaml |
El proporcionado NCache El cliente es extremadamente inteligente cuando se trata de crear conexiones dentro del clúster. Todo lo que este cliente necesita es el nombre del servicio con el que necesita hablar para que descubra automáticamente todos los subyacentes. NCache nodos de clúster para una memoria caché dada presente dentro de su clúster de Azure Kubernetes.
La ventaja más factible de usar NCache en AKS es que no necesita proporcionar direcciones IP de los módulos de caché para la conexión del cliente. El servicio de descubrimiento autónomo que creó anteriormente es responsable de proporcionar las direcciones IP de los módulos de caché a su aplicación cliente en tiempo de ejecución.
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Paso 6: Supervisar NCache Médico
Ahora que tiene sus servicios, servidores y aplicaciones en funcionamiento, necesita una forma de monitorear la actividad de la memoria caché dentro del clúster. Por esta razón exacta, NCache viene con varias herramientas para ayudarlo a monitorear su clúster de caché. Estas herramientas lo ayudan a tener una mejor idea sobre el estado, el rendimiento, las fallas de la red y la conectividad de su clúster.
NCache proporciona una Monitor web que muestra gráficamente el rendimiento en tiempo real de su caché.
Del mismo modo, tienes un Estadísticas de caché opción que proporciona un análisis más detallado de su actividad de caché.
Paso 7: Escalado NCache Médico
NCache, al ser un caché distribuido extremadamente escalable, le permite agregar y eliminar nodos de servidor en tiempo de ejecución para mejorar el rendimiento general de NCache. Mientras supervisa su clúster, si cree que las solicitudes por segundo son mucho mayores que la cantidad de servidores disponibles para procesar esas solicitudes, puede agregar uno o varios nodos de caché dentro de su implementación.
Hay múltiples formas a través de las cuales puede escalar el NCache clúster en su implementación de AKS. Puedes usar el NCache administrador web o NCache herramienta PowerShell o incluso la NCache archivo YAML. Para obtener más información sobre cómo se utilizan estos métodos para agregar y eliminar nodos del clúster, visite nuestra documentación en Agregar servidores de caché en un clúster de AKS y Eliminación de servidores de caché de un clúster de AKS.
NCache Detalles Implementaciones de contenedores NCache Documentos de AKS
Que hemos aprendido
De lo que hemos visto, podemos deducir que Azure Kubernetes Service es un orquestador de contenedores completamente integrado y administrado que automatiza las actualizaciones y la aplicación de parches. Para lograr escalabilidad y alta disponibilidad en un clúster de AKS, donde residen sus aplicaciones y recursos, debe implementar NCache en ella. NCache es una caché distribuida en memoria escalable que proporciona alto rendimiento y escalabilidad dentro de su clúster de AKS.
Para obtener una ilustración detallada paso a paso de la implementación NCache en AKS, consulte nuestra documentación sobre El despliegue NCache en Azure Kubernetes Service.
¿Puede por favor usar palabras limpias y luego oraciones más largas y sofisticadas? Es realmente doloroso leer los artículos y documentaciones en su sitio web...