Tengo un pod de MySQL ejecutándose en mi clúster.
Necesito pausar temporalmente el trabajo del pod sin eliminarlo, algo similar a la ventana acoplable donde el cmd docker stop container-id el contenedor y no lo eliminará.
¿Hay algún comando disponible en kubernetes para pausar/detener un pod?
No. No es posible detener un pod y reanudarlo más tarde cuando sea necesario. Sin embargo, puede considerar el siguiente enfoque.
En k8s, los pods se abstraen mediante un servicio. Una forma en que puedo pensar en aislar los pods es actualizando el selector de pods en la definición del servicio. De esa manera, puede controlar el tráfico a los pods mediante la definición del servicio. Siempre que desee restaurar el tráfico, actualice el valor del selector de pod de nuevo a lo que era en la definición del servicio.
Entonces, como han señalado otros, Kubernetes no admite detener/pausar el estado actual del pod y reanudar cuando sea necesario. Sin embargo, aún puede lograrlo si no tiene implementaciones que funcionen, lo que establece el número de réplicas en 0.
kubectl scale --replicas=0 deployment/<your-deployment>ver la ayuda
# Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet. kubectl scale --helpScale también permite a los usuarios especificar una o más condiciones previas para la acción de escala.
Si se --current-replicas o --resource-version , se valida antes de intentar la escala y se garantiza que la condición previa se cumple cuando la escala se envía al servidor.
Ejemplos:
# Scale a replicaset named 'foo' to 3. kubectl scale --replicas=3 rs/foo # Scale a resource identified by type and name specified in "foo.yaml" to 3. kubectl scale --replicas=3 -f foo.yaml # If the deployment named mysql's current size is 2, scale mysql to 3. kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # Scale multiple replication controllers. kubectl scale --replicas=5 rc/foo rc/bar rc/baz # Scale statefulset named 'web' to 3. kubectl scale --replicas=3 statefulset/webCon Kubernets, no es posible detener/pausar un Pod. Sin embargo, puede eliminar un Pod, dado que tiene el manifiesto para recuperarlo.
Si desea eliminar un Pod, puede ejecutar el siguiente comando kubectl :
kubectl delete -n default pod <your-pod-name>