Creación de implementaciones
Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server
En este artículo se proporciona información general sobre las implementaciones de Kubernetes y se describe cómo crear y actualizar estas implementaciones en AKS habilitadas por Azure Arc.
Introducción a las implementaciones de Kubernetes
Una implementación hace referencia a un objeto de Kubernetes que administra el rendimiento y especifica el comportamiento deseado de un pod. Especifica el ciclo de vida de la aplicación, incluidos los pods asignados a la aplicación. Una implementación proporciona una manera de comunicar el estado deseado para la aplicación y el controlador funciona para cambiar el estado actual en el estado deseado.
Las implementaciones automatizan el proceso para iniciar instancias de pod y asegurarse de que se ejecutan según lo definido en todos los nodos del clúster. Los administradores y profesionales de TI usan implementaciones para comunicar lo que desean desde una aplicación y, a continuación, Kubernetes realiza todos los pasos necesarios para crear el estado deseado de la aplicación.
Si bien las implementaciones definen cómo se ejecutan las aplicaciones, no garantizan dónde se ubican las aplicaciones en el clúster. Por ejemplo, si la aplicación requiere una instancia de un pod en cada nodo, quiere usar un DaemonSet. Para las aplicaciones con estado, StatefulSet proporciona identificadores de red únicos, almacenamiento persistente e implementación o escalado ordenados.
El objeto de implementación de Kubernetes le permite:
- Implemente un conjunto de réplicas o un pod.
- Escale o reduzca verticalmente el número de instancias de una aplicación.
- Actualice cada instancia en ejecución de una aplicación.
- Revierte todas las instancias en ejecución de una aplicación a otra versión.
- Pausar o continuar una implementación.
Para más información, consulte Implementaciones de Kubernetes.
Creación de una implementación
Para crear una implementación, puede usar los comandos kubectl apply
o kubectl create
. Puesto que el número necesario de pods se mantiene y supervisa, se ejecutan y están disponibles después de crear la implementación. Si se produce un error en un pod, Kubernetes lanza inmediatamente una réplica del pod para ocupar su lugar en el clúster.
En el ejemplo siguiente se describen las características de un archivo de manifiesto de implementación en formato YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
strategy:
type: Recreate
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
Para ver la implementación, el conjunto de réplicas y los pods, ejecute el siguiente comando:
kubectl get deployment, replicaset, pod
Actualizar una implementación
La principal ventaja de las implementaciones es la capacidad de actualizar automáticamente el programa de Kubernetes. Sin implementaciones, tendría que finalizar manualmente todos los pods antiguos, iniciar nuevas versiones de pod y ejecutar una comprobación para ver si hay algún problema al crear pods. Puede ejecutar kubectl describe deployment
para ver el orden en el que se activaron y eliminaron los pods.
Las implementaciones automatizan el proceso de actualización, ya que simplemente actualiza la plantilla de pod o el estado deseado. La implementación modifica el estado del programa en segundo plano con acciones, como la creación de pods nuevos o la asignación de más recursos, hasta que se pone en marcha la actualización elegida.
Si hay problemas en la implementación, Kubernetes revierte automáticamente a la versión anterior. También puede revertir explícitamente a una versión específica mediante el comando kubectl rollout undo
o puede usar el kubectl rollout pause
para detener temporalmente una implementación.
Estrategias para actualizar implementaciones
Kubernetes proporciona varias estrategias de implementación para que pueda actualizar de varias formas y satisfacer las necesidades de su entorno. Estas son las tres estrategias de actualización más comunes:
- Actualización gradual: esta actualización es un proceso gradual que le permite actualizar el sistema de Kubernetes solo con un efecto secundario en el rendimiento y sin tiempo de inactividad. Minimiza el tiempo de inactividad a costa de la velocidad de actualización.
- Recreación: esta estrategia es un proceso de todo o nada que permite actualizar todos los aspectos del sistema a la vez con un breve período de tiempo de inactividad. Se actualiza rápidamente, pero provoca tiempo de inactividad.
- Valor controlado: esta estrategia es un proceso de actualización parcial que le permite probar la nueva versión del programa en usuarios reales sin comprometerse con una lanzamiento completo. Se actualiza rápidamente para algunos usuarios seleccionados con un lanzamiento completo más adelante.