¿Qué son las etiquetas y el matchlabels??
Dentro de Kubernetes, las etiquetas son una pieza de metadatos formateadas de clave/valor vinculado a un objeto. Se proporciona información adicional sobre lo relevante para el consumidor u objeto a través de etiquetas. Por ejemplo, una etiqueta puede identificar las especificaciones de hardware de un nodo o si una carga de trabajo es para pruebas de producción.
Las etiquetas sirven como una técnica de agrupación implícita para objetos similares, al tiempo que ofrecen un mecanismo de búsqueda para usuarios, controladores y otros sistemas.
Las etiquetas permiten a los usuarios mapear sus propios sistemas organizacionales a los elementos del sistema de manera poco conectada sin requerir que los clientes guarden las asignaciones.
Las entidades multidimensionales, como las implementaciones de servicios, así como las tuberías de procesamiento por lotes son comunes. Las acciones de corte transversal se requieren con frecuencia en la administración, lo que socava la encapsulación de representaciones rigurosamente jerárquicas, particularmente jerarquías inflexibles dictadas por la infraestructura en lugar de los usuarios.
MatchLabels es un tipo de mapa de par de valores clave. Un solo par de valores de clave en el mapa MatchLabels corresponde a un elemento de MatchExpressions con el campo de clave "clave", el operador "in" y solo "valor" en la matriz de valores. Una colección de requisitos del selector de POD se llama MatchExpressions.
En, existe, no notexista y noin son todos válidos y operadores requeridos. En el caso de 'In' y 'Notin', asegúrese de que los valores establecidos no sean vacíos. Todos los requisitos de MatchLabels y MatchExpressions son y todos deben cumplirse para igualar.
Requisito previo:
Necesitamos instalar Ubuntu 20.04 Para poner en práctica el conocimiento teórico y realizar las instrucciones en Kubernetes. Los comandos Kubectl se ejecutan en el sistema operativo Linux en este ejemplo. Para ejecutar Kubernetes en Linux, instale el clúster de Minikube. Minikube facilita la comprensión al proporcionar un mecanismo eficiente para los comandos y aplicaciones de prueba.
Hemos ejecutado el comando "Minikube Start" en el terminal para inicializar el minikube. Este comando inicia el clúster Kubernetes y crea una máquina virtual capaz de ejecución del clúster. También se conectará con el clúster utilizando la instalación de Kubectl. La salida del comando "Minikube Start" se representa a continuación.
Creación de una implementación
En este ejemplo, hemos creado dos implementaciones. Uno para un servicio web que se ejecuta en infraestructura interna y otro en infraestructura DMZ. La implementación inicial (llamada DEP11.se hace yaml), como se muestra a continuación.
Aquí está todo el dep11.Archivo de configuración YAML, que incluye el campo MatchLabels.
El comando para crear la cápsula es el siguiente.
El despliegue (llamado: DEP12.Yaml) que funciona en la infraestructura DMZ se muestra a continuación.
Todo el archivo de configuración se puede encontrar a continuación.
Cuando se despliegan las vainas, tienen las etiquetas ejecutadas = nginx. Múltiples etiquetas son posibles para un objeto; Sin embargo, múltiples etiquetas con la misma clave no son. Si hay varias entradas de etiqueta con la misma clave en un manifiesto de objeto, se usa el último valor.
La etiqueta selectora se puede ver aquí, que la implementación se utiliza para comunicarse con sus vainas. El campo selector de la implementación especifica cómo determina qué vainas administrar. Debe seleccionar una etiqueta primero de la plantilla de Pod. Las reglas de selección más complicadas también fueron posibles si la plantilla de POD se ajuste a los criterios. Aquí está el comando para crear la vaina.
Para ver las etiquetas de una cápsula, use el subcomando Get:
Las cápsulas lanzadas utilizando los manifiestos de implementación anteriores se muestran en el bloque de código a continuación. El controlador de implementación aplica automáticamente la etiqueta POD-Template-Hash.
Las vainas proporcionadas por kubectl get pods se pueden filtrar utilizando uno o más parámetros del selector. En la salida, las etiquetas se presentan como una columna adicional.
Para obtener vainas nginx internas, use varios selectores.
El controlador de implementación utiliza un selector para determinar qué POD se incluyen en una implementación. Se crea un objeto ReplicAset cuando se crea una implementación, y el controlador de replicación lo monitorea para garantizar que el número de POD coincida con el número planificado.
Nuestras implementaciones actualmente tienen cuatro vainas en un estado listo.
La configuración de un replicaSet se muestra a continuación.
Aquí está el resto de la salida del código de gastos generales.
Cambiemos una de las etiquetas en una cápsula de tal manera que ya no corresponde a nuestro selector. Consulte la especificación MatchLabels para ver qué sucede.
Después de alterar la etiqueta Run en el POD e implementar otro Pod para resolver el problema, el controlador de réplica solo pudo localizar tres POD que operan utilizando la selección de MatchLabel.
Para confirmar que se creó la implementación, ejecute la instrucción 'Kubectl Get Implements'. Los siguientes campos se presentan cuando inspecciona las implementaciones en su clúster: nombre, listo, actualizado, disponible y edad.
Como puede ver a continuación, utilizamos varios criterios para adquirir vainas Nginx internas.
Conclusión:
Este artículo aclaró las diferencias entre etiquetas y matchlabels. Ya hemos visto los beneficios de emplear etiquetas. Las capacidades de categorización y filtrado de las etiquetas de Kubernetes son fantásticas, como se puede ver anteriormente. El uso de etiquetas hará que sus registros sean más relevantes, las herramientas de monitoreo le permitirán elegir ciertas cargas de trabajo de interés, y Bash Scripting le proporcionará una amplia gama de datos para tratar.