¿Qué es el control de versiones?
En las versiones de software suelen encontrarse errores, problemas o defectos de seguridad que requieren que los equipos de desarrollo apliquen actualizaciones y correcciones. A medida que evoluciona el software, se agregan nuevas características y funcionalidades. Estas actualizaciones y correcciones se publican como versiones nuevas del software. El control de versiones es un proceso controlado que implica el seguimiento y la administración de las versiones de software. Normalmente, las versiones de software mantienen su compatibilidad durante un período de tiempo determinado, lo que proporciona a los usuarios tiempo para actualizar su software a la última versión.
¿Qué es el versionamiento semántico?
El versionamiento semántico es un esquema de control de versiones formado por los siguientes componentes de versión:
- Las versiones principales se publican cuando el software evoluciona de la versión 1.0.0 a la 2.0.0. Estas versiones suelen incluir cambios importantes que no son compatibles con versiones anteriores.
- Las versiones secundarias se publican cuando el software evoluciona de la versión 1.0.0 a la 1.1.0. Estas versiones suelen incluir nuevas características y funcionalidades.
- Las versiones de revisión se publican cuando el software evoluciona de la versión 1.0.0 a la 1.0.1. Estas versiones suelen incluir correcciones de errores y actualizaciones de seguridad.
Control de versiones de Kubernetes
Kubernetes usa el esquema de versionamiento semántico. Los lanzamientos de nuevas versiones de Kubernetes son solo para los componentes del entorno de ejecución de Kubernetes dentro del clúster. El entorno de ejecución de Kubernetes incluye los siguientes componentes:
- kube-apiserver
- kubelet
- kube-controller-manager
- kube-scheduler
- kube-proxy
Los componentes del entorno de ejecución de Kubernetes no incluyen actualizaciones de nodo, como las actualizaciones del sistema operativo o las actualizaciones de imágenes para los nodos que ejecutan el clúster de Kubernetes. Esto significa que debe aplicar actualizaciones y revisiones independientes a los componentes del clúster de Kubernetes y los nodos de proceso subyacentes que admiten el clúster.