Servidor Couchbase

Kubernetes Namespaces, Cuota de Recursos y Límites para QoS en Cluster

Kubernetes Logo

Por defecto, todos los recursos del clúster Kubernetes se crean en un espacio de nombres predeterminado. Un pod se ejecutará con solicitudes/límites de CPU y memoria ilimitados. A Espacio de nombres de Kubernetes permite particionar los recursos creados en un grupo de nombres lógicos. Cada espacio de nombres proporciona:

  • un alcance único de recursos para evitar colisiones de nombres
  • políticasgarantizar una autoridad adecuada a los usuarios de confianza
  • capacidad de especificar limitaciones para el consumo de recursos

Esto permite que un clúster Kubernetes comparta recursos por múltiples grupos y proporcione diferentes niveles de QoS a cada grupo. Los recursos creados en un espacio de nombres se ocultan de otros espacios de nombres. Se pueden crear múltiples espacios de nombres, cada uno potencialmente con diferentes restricciones.

Espacio de nombres predeterminado de Kubernetes

Por defecto, cada recurso creado por el usuario en el clúster Kubernetes se ejecuta en un espacio de nombres predeterminado, denominado por defecto.

Cualquier pod, servicio o controlador de replicación se creará en este espacio de nombres. sistema kube está reservado para los recursos creados por el clúster Kubernetes. Puede consultar más detalles sobre el espacio de nombres:

Esta descripción muestra la cuota de recursos (si existe), así como los rangos de límite de recursos. Así que vamos a crear un controlador de replicación Couchbase como:

Compruebe el controlador de replicación existente:

Por defecto, sólo se muestran los recursos del espacio de nombres del usuario. Los recursos de todos los espacios de nombres pueden mostrarse utilizando --all-namespaces opción:

Como puede ver, el arungupta/couchbase se ejecuta en el por defecto espacio de nombres. Todos los demás recursos se ejecutan en el espacio de nombres sistema kube namespace. Comprobemos el contexto de este controlador de replicación:

Busque contextos.nombre.contexto para ver el contexto existente. Este se manipulará más adelante.

Crear un recurso en un nuevo espacio de nombres de Kubernetes

Primero vamos a crear un nuevo espacio de nombres. Esto puede hacerse utilizando el siguiente archivo de configuración:

El espacio de nombres se crea como:

A continuación, la consulta de todos los espacios de nombres da:

Se puede crear un nuevo controlador de replicación en este nuevo espacio de nombres utilizando --namespace opción:

La lista de recursos en todos los espacios de nombres tiene este aspecto:

Como se ve, hay dos controladores de replicación con arungupta/couchbase imagen - una en por defecto y otro en desarrollo espacio de nombres.

Establecer el espacio de nombres de Kubernetes para un recurso existente

Si un recurso ya está creado, se le puede asignar un espacio de nombres. En un recurso creado previamente, se puede establecer un nuevo contexto en el espacio de nombres:

Ahora se muestra el contexto:

El segundo atributo de contextos.contexto muestra que se ha creado un nuevo contexto. También muestra que el contexto actual sigue siendo couchbase-en-kubernetes_kubernetes. Dado que no se especifica ningún espacio de nombres en ese contexto, pertenece al espacio de nombres por defecto. Cambie el contexto:

Consulte la lista de controladores de replicación:

Obviamente, no hay controladores de replicación ejecutándose en este contexto. Vamos a crear un nuevo controlador de replicación en este nuevo espacio de nombres:

Y ver la lista de controladores de replicación en todos los espacios de nombres:

Ahora puedes ver dos arungupta/couchbase controladores de replicación que se ejecutan en dos espacios de nombres diferentes.

Eliminar un recurso de Kubernetes en el espacio de nombres

Se puede eliminar un recurso calificando completamente el nombre del recurso:

Del mismo modo, el otro controlador de replicación se puede eliminar como:

Por último, vea la lista de todos los controladores de replicación en todos los espacios de nombres:

Esto confirma que se han eliminado todos los controladores de replicación creados por el usuario.

Cuota y límite de recursos mediante el espacio de nombres de Kubernetes

A cada espacio de nombres se le puede asignar una cuota de recursos. Por defecto, un pod se ejecutará con solicitudes/límites de CPU y memoria ilimitados. Especificar una cuota permite restringir la cantidad de recursos del clúster que pueden consumir todos los pods de un espacio de nombres. La cuota de recursos puede especificarse utilizando un archivo de configuración:

El sistema de cuotas admite los siguientes recursos:

Recursos Descripción
cpu Uso total de cpu solicitado
memoria Uso total de memoria solicitada
vainas Número total de pods activos en los que la fase está pendiente o activa.
servicios Número total de servicios
controladores de replicación Número total de controladores de replicación
resourcequotas Número total de cuotas de recursos
secretos Número total de secretos
reclamaciones persistentes Número total de siniestros de volumen persistente

Esta cuota de recursos puede crearse en un espacio de nombres:

La cuota creada puede verse como:

Ahora, si intenta crear el controlador de replicación que funciona:

Pero describir la cuota de nuevo muestra:

Esperábamos que se creara un nuevo pod como parte de este controlador de replicación, pero no está ahí. Así que vamos a describir nuestro controlador de replicación:

Por defecto, el pod consume toda la cpu y memoria disponibles. Si se aplican cuotas de recursos, debe especificarse un valor explícito. Alternativamente se puede especificar un valor por defecto para el pod utilizando el siguiente fichero de configuración:

Esto restringe la CPU y la memoria que puede consumir un pod. Vamos a aplicar estos límites como:

Ahora, al volver a describir el controlador de replicación, se muestra:

Esto muestra la creación exitosa del pod. Y ahora cuando se describe la cuota, muestra valores correctos también:

Cuota de recursos proporcionan más detalles sobre cómo establecer/actualizar estos valores. La creación de otra cuota da el siguiente error:

Especificación de límites durante la creación de un pod

Los límites también pueden especificarse durante la creación del pod: Si el límite de memoria para cada pod está restringido a 1g, entonces una definición de pod válida sería:

Esto se debe a que el pod solicita 0.5G de memoria solamente. Y una definición de pod inválida sería:

Esto se debe a que el pod solicita 2G de memoria. La creación de un pod de este tipo da el siguiente error:

Espero que puedas aplicar espacios de nombres, cuotas de recursos y límites para compartir tus clusters en distintos entornos.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by Arun Gupta

Arun Gupta es vicepresidente de promoción de desarrolladores en Couchbase. Ha creado y dirigido comunidades de desarrolladores durante más de 10 años en Sun, Oracle y Red Hat. Tiene una gran experiencia en liderar equipos multidisciplinares para desarrollar y ejecutar estrategias, planificar y ejecutar contenidos, campañas de marketing y programas. Anteriormente dirigió equipos de ingeniería en Sun y es miembro fundador del equipo Java EE. Gupta es autor de más de 2.000 entradas de blog sobre tecnología. Tiene una amplia experiencia como conferenciante en más de 40 países sobre innumerables temas y es una JavaOne Rock Star desde hace tres años consecutivos. Gupta también fundó el capítulo Devoxx4Kids en Estados Unidos y sigue promoviendo la educación tecnológica entre los niños. Autor de varios libros sobre tecnología, ávido corredor, trotamundos, campeón de Java, líder de JUG, miembro del Dream Team de NetBeans y capitán de Docker, es fácilmente accesible en @arungupta.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.