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.
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.
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 |
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
Los selectores de campo permiten seleccionar recursos Kubernetes basados en los valores de sus campos.
Ejemplo:
kubectl get pods --field-selector=status.phase=Running
Las anotaciones permiten almacenar metadatos arbitrarios no identificativos en objetos.
Ejemplo de uso:
metadata:
annotations:
build-version: "1.2.3"
git-commit: "9a0352a"
Los finalizadores permiten que los controladores implementen lógica de limpieza antes de que Kubernetes elimine un objeto.
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 |