Los límites de recursos son una parte importante de la orquestación de contenedores de Kubernetes, ya que se aseguran de que los contenedores no consumen demasiados recursos o no respondan debido al agotamiento de los recursos. Este artículo proporciona una guía sobre cómo establecer los límites de recursos de contenedores Kubernetes para maximizar sus beneficios y obtener el máximo provecho de sus aplicaciones. Aprenda cómo configurar y administrar los recursos de su contenedor rápida y fácilmente con solo unos pocos pasos simples para que pueda estar seguro de que todos sus servicios se ejecutan sin problemas.
Establezca los límites de recursos de contenedor en Kubernetes
Los límites de recursos de contenedores son un elemento esencial de Kubernetes, lo que permite a los usuarios administrar la cantidad de recursos que un contenedor puede consumir. Para evitar sobrecargar y garantizar un rendimiento de la aplicación, esto es particularmente crucial en los contextos de producción. Aquí hay algunos consejos profesionales para establecer los límites de recursos del contenedor:
Comience por determinar los recursos que necesitan sus contenedores. Analice el uso de su sistema y determine qué contenedores deben tener su memoria y límites de CPU ajustados. También es importante considerar los nodos subyacentes al establecer los límites de recursos: si establece un límite demasiado alto o demasiado bajo, el nodo podría no poder ejecutar las otras aplicaciones sin bloquear. A continuación, decida qué tipo de límite desea usar: ruptura o no burstable. Ahora, veamos los pasos necesarios que puede seguir para establecer los límites de recursos de contenedores de Kubernetes. Antes de dirigirse hacia los escalones, hay algunos requisitos previos necesarios:
Requisitos previos
Antes de pasar a los pasos, asegurémonos de que nuestro sistema satisfaga todas las necesidades de los requisitos previos. Asegúrate de tener Ubuntu 20.04 o cualquier otra última versión para tener un entorno Linux/Unix para funcionar, Kubernetes Cluster, Kubectl CLI para usar los comandos Kubectl, la comunicación del clúster, administrar el entorno de desarrollo y Minikube o cualquier otro parque infantil de Kubernetes para crear los clústeres. Instale estas herramientas si aún no las ha instalado antes de continuar a la siguiente sección. Ahora, pasamos a la guía paso a paso sobre cómo establecer los límites de recursos de contenedores de Kubernetes.
Cómo establecer los límites de recursos de Kubernetes
Configurar los límites de recursos de contenedores de Kubernetes es una parte importante para administrar y mantener sus grupos de Kubernetes. Tener un límite de recurso adecuado en su lugar asegura que cada contenedor funcione de manera óptima, sin comprometer el rendimiento de otros contenedores o todo el clúster. Esto se puede hacer estableciendo las solicitudes y límites de recursos para CPU, memoria, almacenamiento efímero y más. Aquí le mostramos cómo establecer los límites de recursos de contenedores Kubernetes correctamente.
Paso 1: Comience el minikube
El clúster de Minikube debe estar en un estado activo para que pueda ejecutar sus aplicaciones o comandos en él. Para asegurarse de que esté en funcionamiento correctamente, use el siguiente comando dado:
> Minikube Start
Paso 2: Habilite el servidor de métricas
En este paso, compartimos el comando que le permite habilitar el servidor de métricas. El comando se da en lo siguiente:
> Los complementos de Minikube habilitan las métricas-servidor
Paso 3: verifique si el servidor de métricas está activo o no
Escriba el siguiente comando para verificar si el servidor de métricas está activo o no:
> kubectl obtiene apiservices
Como se ve en la imagen anterior, contiene una referencia a las métricas.K8S.IO en caso de que sea accesible la API de métricas de recursos.
Paso 4: crear un espacio de nombres
Para mantener los recursos, crea un espacio de nombres para este ejercicio que está separado del resto de su clúster. Ahora demostramos cómo crear un espacio de nombres. El comando que realiza se da de la siguiente manera:
> Kubectl Crear espacio de nombres ABC
Paso 5: crear un archivo de configuración
El archivo de configuración YAML que utilizamos para construir un pod en el contenedor se crea en este paso. Aquí está el comando que se usa para lograr esto:
> nano reqlimit.yaml
Aquí, debe incluir una solicitud de CPU junto con un límite de CPU. Incluir los recursos: límites para definir un límite de CPU. En este caso, se crea una cápsula con un solo contenedor. El contenedor tiene un 0.5 límite de solicitud de CPU y un máximo de 1 CPU. El archivo de configuración del POD está disponible aquí. Como puede ver, la sección Args del archivo de configuración contiene los argumentos que usa el contenedor cuando se inicia. Se instruye al contenedor que intente utilizar las 2 CPU a través del parámetro "2" -cpus.
Al crear recursos en Kubernetes, como implementaciones y POD, es importante especificar el número mínimo de recursos requeridos (solicitud) y el número máximo de recursos permitidos (límite) para cada POD o implementación. Esto evita que cualquier cápsula consuma demasiados recursos que puedan hacer que las otras cápsulas activas sufran la disminución del rendimiento o incluso el bloqueo debido a la falta de recursos disponibles en el clúster.
Paso 6: crear una cápsula
Ahora, le mostramos cómo crear el Pod con el siguiente comando:
> kubectl create -f reqlimit.yaml
A partir de la salida dada anterior, puede notar que se crea el POD llamado "CPU-DEMO".
Paso 7: Verifique la vaina
En este paso, verificamos si el POD creado está activo o no con el siguiente comando:
> Kubectl Get Pod CPU-Demo-Namespace = ABC
Paso 8: Ver los detalles de la cápsula
Ahora, si desea ver la información detallada sobre el POD, aquí está el comando que debe ejecutarse:
> kubectl get pod cpu-demo --output = yaml --namespace = ABC
Paso 9: Elimina la vaina
Aquí, mostraremos cómo eliminar la cápsula para limpiar los recursos. El comando que se usa para este propósito es el siguiente:
> kubectl eliminar pod cpu-demo --namespace = ABC
Paso 10: crear un archivo de configuración
En este paso, creamos un archivo de configuración. Este archivo especifica una solicitud de CPU que es bastante grande para sus nodos.
> nano reqlimit2
El archivo de configuración con un solo contenedor se puede encontrar aquí. El contenedor solicita 100 CPU, que es más que cualquier nodo que su clúster pueda proporcionar razonablemente.
Paso 11: Create the pod
En este paso, creamos el POD con el siguiente comando:
> kubectl create -f reqlimit2.yaml
Paso 12: Ver el estado de la cápsula
Ahora puedes ver el STatus de la cápsula con el comando que se adjunta aquí:
La salida muestra que el estado de la cápsula está pendiente.
Paso 13: consulte la información de la cápsula
Ahora, vemos la información detallada sobre la cápsula, incluidos los eventos con el comando dado aquí:
Vaya a la sección del evento y vea si el contenedor está programado o no.
Si no se puede programar y la razón es insuficiente recursos de la CPU, puede eliminar el nodo. Cómo eliminar un nodo se explica en el siguiente paso.
Paso 14: Eliminar el nodo
Puede eliminar el nodo con el siguiente comando:
> kubectl eliminar pod cpu-dema-2 --namespace = ABC
¿Cuál es el impacto de los límites de recursos de contenedores en el rendimiento??
Con la creciente popularidad de la tecnología de contenedores de Kubernetes, es importante comprender cómo los límites de recursos pueden afectar el rendimiento. Establecer los límites de recursos dentro de un contenedor Kubernetes puede ayudarlo a garantizar que sus aplicaciones se ejecuten en su nivel óptimo y que no están consumiendo demasiados recursos del servidor host. Al limitar los recursos, puede evitar los procesos redundantes desperdiciados, ayudar a prevenir los bloqueos del sistema debido a la utilización y optimizar el rendimiento de sus contenedores.
Para establecer estos límites de recursos en un contenedor de Kubernetes, debe utilizar una herramienta llamada CGROUPS (grupos de control). Los croups permiten a los administradores limitar los recursos como los ciclos de la CPU o el uso de la memoria para contenedores individuales. También puede establecer los otros parámetros, como los tamaños de archivo máximos o el uso de ancho de banda de red por contenedor.
Conclusión
Establecer los límites de recursos de contenedores Kubernetes es una parte crucial para administrar su entorno de computación en la nube. Con la configuración adecuada, puede asegurarse de que cada contenedor tenga acceso a los recursos que necesita, pero no tanto que afecte otros contenedores o sistemas. Esto permite un uso más eficiente y rentable de los recursos informáticos. Además, al limitar cuánta memoria o CPU puede consumir un contenedor, puede evitar que ocurran las interrupciones debido a los procesos fugitivos o los picos inesperados en el uso.