Objetos de Kubernetes

Entender los Objetos de Kubernetes

En Kubernetes, los objetos son entidades persistentes que representan el estado de tu clúster. Estos objetos describen:

Para crear un objeto, debes proporcionar su especificación (en YAML o JSON) que describa su estado deseado.

Nombres

Cada objeto en Kubernetes tiene un nombre único que lo identifica dentro de su espacio de nombres.

Los nombres de los recursos DNS deben seguir RFC 1123 y tener como máximo 253 caracteres.

Espacios de nombres

Los namespaces proporcionan un mecanismo para aislar grupos de recursos dentro de un mismo clúster.

Namespace Descripción
default Espacio de nombres predeterminado para objetos sin namespace especificado
kube-system Para objetos creados por el sistema Kubernetes
kube-public Para recursos que deben ser visibles para todos los usuarios

Etiquetas y Selectores

Las etiquetas son pares clave-valor que se adjuntan a objetos para identificar atributos significativos.

Ejemplo de etiquetas en un Pod:

metadata:
  labels:
    app: frontend
    tier: web
    environment: production

Selectores de Campo

Los selectores de campo permiten seleccionar recursos Kubernetes basados en los valores de sus campos.

Ejemplo:

kubectl get pods --field-selector=status.phase=Running

Anotaciones

Las anotaciones permiten almacenar metadatos arbitrarios no identificativos en objetos.

Ejemplo de uso:

metadata:
  annotations:
    build-version: "1.2.3"
    git-commit: "9a0352a"

Finalizadores

Los finalizadores permiten que los controladores implementen lógica de limpieza antes de que Kubernetes elimine un objeto.

Etiquetas recomendadas

Kubernetes sugiere un conjunto de etiquetas comunes para mantener la consistencia:

Etiqueta Descripción
app.kubernetes.io/name Nombre de la aplicación
app.kubernetes.io/instance Identificador único de la instancia
app.kubernetes.io/version Versión actual de la aplicación