Seleccionar página

Configuración de clúster de Kubernetes con escalado automático y precios de pago por uso

Kubernetes (K8s) es una de las plataformas líderes para la implementación y administración de aplicaciones en contenedores tolerantes a fallas. Se utiliza para crear aplicaciones de microservicio nativas de la nube, así como también permite a las empresas migrar proyectos existentes a contenedores para una mayor eficiencia y resistencia. K8S puede manejar tareas complejas del envase o orquestación , como el despliegue, el descubrimiento de servicios, actualizaciones sucesivas, la auto-sanación, y la gestión de la seguridad.

El proyecto Kubernetes cuenta con el respaldo de Cloud Native Computing Foundation que ayuda a habilitar la portabilidad en la nube sin el bloqueo del proveedor. Los clústeres de K8 se pueden implementar en cualquier lugar : en la nube, pública o privada. 

Al mismo tiempo, no necesitamos olvidar que hacer girar el clúster de Kubernetes en servidores propios desde cero es un procedimiento complicado. Requiere una comprensión profunda de los componentes del clúster y las formas en que deben estar interconectados, como tiempo y habilidades para el monitoreo y la resolución de problemas . Para más detalles, consulte el artículo de Kubernetes The Hard Way .

Además, los servicios administrados de K8 automatizan y facilitan una lista de operaciones, pero aún persiste el problema de la nube de «tamaño correcto» . Para obtener la máxima eficiencia, debe predecir el tamaño de un nodo de trabajo y los contenedores que se ejecutan en su interior. De lo contrario, puede terminar pagando por grandes trabajadores que no están completamente cargados, o usando máquinas virtuales pequeñas y jugando con el escalado horizontal automático que puede conducir a una complejidad adicional. 

Elasticserver ha avanzado resolviendo una serie de barreras y brindando la funcionalidad necesaria para comenzar a hospedar Kubernetes fácilmente mientras obtiene la máxima eficiencia en términos de consumo de recursos:

  • La configuración compleja del clúster está totalmente automatizada y convertida a «un clic» dentro de la interfaz de usuario intuitiva
  • Escalado vertical instantáneo basado en los cambios de carga totalmente automatizados por la plataforma
  • Escalado horizontal rápido automático o manual de nodos de trabajo de K8 con detección automática integrada
  • El modelo de precios de pago por uso está desbloqueado para el alojamiento de Kubernetes, por lo que no es necesario pagar de más por recursos reservados pero no utilizados
  • Elasticserver Almacenamiento compartido está integrado con Dynamic Volume Provisioner para que los volúmenes físicos utilizados por las aplicaciones se coloquen automáticamente en la unidad de almacenamiento y el usuario pueda acceder a ellos mediante SFTP / NFS o mediante el administrador de archivos integrado
  • No se requieren IP públicas de forma predeterminada, Balanceador de carga compartida procesa todas las solicitudes entrantes como un servidor proxy y se proporciona de forma inmediata
  • Aprovisione los clústeres en múltiples regiones, nubes y locales sin fracciones y diferencias en las configuraciones y sin bloqueo de proveedores 

Elasticserver PaaS suministra el clúster de Kubernetes con los siguientes componentes preinstalados:  

  • Controlador de tiempo de ejecución Containerd
  • Complemento CNI (desarrollado por Weave) para soporte de red superpuesta
  • Controlador de ingreso Traefik para transferir solicitudes HTTP / HTTPS a servicios
  • Administrador de paquetes HELM para instalar automáticamente soluciones preempaquetadas desde repositorios
  • CoreDNS para resolución de nombres internos
  • Aprovisionador dinámico de volúmenes persistentes.
  • Almacenamiento NFS dedicado
  • Servidor de métricas para recopilar estadísticas 
  • Elasticserver SSL para proteger la red de ingreso
  • Panel de interfaz de usuario web

Explore los pasos de instalación del clúster Kuberenetes en el video o las instrucciones a continuación. 

Instalación de clúster de Kubernetes

1. Para comenzar, inicie sesión en el tablero, busque el Clúster de Kubernetes en Tienda de aplicaciones y haga clic en Instalar .

importe el manifiesto desde GitHub usando el enlace:

https://github.com/jelastic-jps/kubernetes/blob/master/manifest.jps

2. Elija el tipo de instalación:

  • Clúster limpio con el ejemplo Hello World preinstalado

  • Implemente timón personalizado o apile a través de comandos de shell. Escriba una lista de comandos para ejecutar helm chart u otros comandos para una implementación de aplicación personalizada.

De manera predeterminada, aquí se le ofrece instalar el tiempo de ejecución del servidor de aplicaciones Open Liberty con un conjunto predefinido de comandos:

3. Como siguiente paso, elija la topología requerida del clúster. Hay dos opciones disponibles:

  • Desarrollo : un maestro (1) y un trabajador escalable (1+): versión ligera para pruebas y desarrollo
  • Producción : multimaestro (3) con balanceadores API (2+) y trabajadores escalables (2+) – clúster con alta disponibilidad preconfigurada para ejecutar aplicaciones en producción

Dónde:

    • Multi maestro (3) : tres nodos maestros.
    • Balanceadores de API (2+) : dos o más equilibradores de carga para distribuir las solicitudes de API entrantes. Para aumentar el número de equilibradores, escalarlos horizontalmente .
    • Trabajadores escalables (2+) : dos o más trabajadores ( nodos de Kubernetes ). Para aumentar el número de trabajadores, escalarlos horizontalmente.

4. Adjunte almacenamiento NFS dedicado con aprovisionamiento de volumen dinámico. 

De manera predeterminada, cada nodo tiene su propio sistema de archivos con permisos de lectura y escritura, pero para acceder desde otros contenedores o persistir después de las redespliegues, los datos deben colocarse en un volumen dedicado. 

Puede usar un aprovisionador de volumen dinámico personalizado especificando la configuración requerida en sus archivos yaml de implementación. 

O bien, puede mantener el administrador de volúmenes preconfigurado y el almacenamiento NFS integrado en el clúster Elasticserver Kubernetes. Como resultado, los volúmenes físicos se aprovisionarán dinámicamente a pedido y se conectarán a los contenedores. Se puede acceder y administrar el Nodo de almacenamiento utilizando el administrador de archivos a través del tablero, SFTP o cualquier cliente NFS. 

5. Para resaltar todas las características y peculiaridades del paquete, iniciamos la instalación del tiempo de ejecución del servidor de aplicaciones Open Liberty en la topología de clúster de Kubernetes de producción con almacenamiento NFS incorporado 

Haga clic en el botón Instalar y espere unos minutos. Una vez que se completa el proceso de instalación, la topología del clúster tiene el siguiente aspecto:

6. Puede acceder al panel de administración de Kubernetes junto con la página de bienvenida del servidor de aplicaciones Open Liberty desde la ventana de instalación exitosa.

  • use el token de acceso y siga el enlace del panel de Kubernetes para administrar el clúster de Kubernetes 

  • acceda a la página de bienvenida de Open Liberty presionando el botón Abrir en el navegador

Acceso API remoto al clúster de Kubernetes

Para acceder y administrar el clúster Kubernetes creado de forma remota utilizando API, marque la casilla de verificación Habilitar acceso remoto a API .

El enlace de punto final de API remota y el token de acceso se deben utilizar para acceder al servidor de api de Kuberntes (nodo equilibrador o maestro). 

La mejor manera de interactuar con api-server es usar la herramienta de línea de comandos Kubernetes kubectl :

  • Instale la utilidad kubectl en su computadora local siguiendo la guía oficial . Para este artículo, hemos utilizado la instalación de Ubuntu Linux.
  • Luego cree la configuración local para kubectl . Para hacer esto, abra la terminal en su computadora local y emita los siguientes comandos:
$ kubectl config set-cluster mycluster --server = {API_URL}
$ kubectl config set-context mycluster --cluster = mycluster
$ kubectl config set-credentials usuario --token = {TOKEN}
$ kubectl config set-context mycluster --usuario = usuario
$ kubectl config use-context mycluster

Dónde:

{API_URL} : enlace de punto final de API remota

{TOKEN} –  Token de acceso

Ahora puede administrar su clúster de Kubernetes desde una computadora local siguiendo el tutorial oficial 

Como ejemplo, echemos un vistazo a la lista de todos los nodos disponibles en nuestro clúster. Abra la terminal local y emita un comando usando kubectl :

usuario @ jelastic: ~ $ kubectl get nodes

Para deshabilitar / habilitar el servicio API después de la instalación, use el complemento de configuración del nodo maestro .

Actualización de Kubernetes

Para mantener actualizado el software de su clúster Kubernetes, use el complemento de configuración . Simplemente haga clic en el botón Actualizar . El complemento verifica si la nueva versión está disponible o no y, de ser así, se instalará la nueva versión. Durante el procedimiento de actualización, todos los nodos, incluidos los maestros y los trabajadores, se volverán a implementar en la nueva versión uno por uno, todos los datos y configuraciones existentes permanecerán intactos. Tenga en cuenta que el procedimiento de actualización es secuencial entre versiones, por lo que si realiza una actualización a la última versión desde la versión muy posterior a la última, deberá ejecutar el procedimiento de actualización varias veces. La actualización solo está disponible si hay una nueva versión disponible y fue publicada globalmente por el equipo de Elasticserver.

Para evitar el tiempo de inactividad de sus aplicaciones durante la redistribución, considere el uso de múltiples réplicas para sus servicios.  

Estadísticas y facturación de pago por uso

Elasticserver proporciona una escala vertical automática para cada trabajador un nodo maestro en el clúster de Kubernetes, por lo tanto, los recursos necesarios se asignan según la demanda en función de la carga en tiempo real. Como resultado, no hay necesidad de monitorear los cambios todo el tiempo mientras el sistema lo hace por usted. Además, hay una manera conveniente de verificar la carga actual en un grupo de nodos o en cada nodo por separado. Simplemente presione el botón Estadísticas al lado de la capa requerida o nodo específico.

Tal escalamiento altamente automatizado y contenedorización completa de Elasticserver PaaS permite un modelo de facturación que se considera relativamente nuevo para la computación en la nube. A pesar de la novedad, este modelo ya se ha ganado la reputación del enfoque más rentable de  » pago por uso » . Como resultado, el pago por el alojamiento de Kubernetes dentro de la plataforma se requiere solo para los recursos realmente utilizados sin necesidad de sobreasignar, resolviendo así el problema de «dimensionamiento correcto» inherente a la primera generación de precios de computación en la nube («pago por límites» «o el llamado » pago por uso «, un enfoque). 

Todo el proceso de facturación es transparente y puede rastrearse a través del panel de control ( Saldo> Historial de facturación ). Básicamente, el precio se basa en la cantidad de nube de unidades de recursos consumidos reales (128MiB + 400MHz). Tal granularidad proporciona más flexibilidad en la formación de facturas, así como claridad en los gastos en la nube. 

Elasticserver PaaS permite el escalado vertical automático de los nodos del clúster de Kubernetes, el escalado horizontal automático con autodescubrimiento de los trabajadores recién agregados, la administración a través de una interfaz de usuario intuitiva, así como la implementación de las tuberías de CI / CD requeridas con Cloud Scripting y API abierta . Para la configuración privada, la plataforma puede aprovisionar clústeres a través de múltiples nubes y locales sin bloqueo de proveedores con total interoperabilidad entre las nubes . Permite enfocar los valiosos recursos del equipo en el desarrollo de la lógica de aplicaciones y servicios en lugar de perder tiempo en ajustar y soportar las diferencias de infraestructura y API de cada implementación de servicio K8. Pruébelo en uno de los proveedores de servicios públicos de Elasticserver PaaS ¡y comparta con nosotros sus comentarios para futuras mejoras!