J'ai un pod MySQL en cours d'exécution dans mon cluster.
J'ai besoin de suspendre temporairement le pod de travailler sans le supprimer, quelque chose de similaire à docker où le docker stop container-id
cmd arrêtera le conteneur et ne le supprimera pas.
Existe-t-il des commandes disponibles dans kubernetes pour suspendre/arrêter un pod?
Non. Il n'est pas possible d'arrêter un pod et de reprendre plus tard si nécessaire. cependant, vous pouvez envisager l'approche ci-dessous.
Dans les k8, les pods sont extraits à l'aide d'un service. Une façon dont je peux penser à isoler les pods est de mettre à jour le sélecteur de pods dans la définition de service. De cette façon, vous pouvez contrôler le trafic vers les modules à l'aide de la définition de service. Chaque fois que vous souhaitez restaurer la mise à jour du trafic, la valeur du sélecteur de pod revient à ce qu'elle était dans la définition de service.
Ainsi, comme d'autres l'ont souligné, Kubernetes ne prend pas en charge l'arrêt/la pause de l'état actuel du pod et ne reprend pas si nécessaire. Cependant, vous pouvez toujours y parvenir en n'ayant aucun déploiement opérationnel qui définit le nombre de réplicas à 0.
kubectl scale --replicas=0 deployment/<your-pod>
voir l'aide
# Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.
kubectl scale --help
L'échelle permet également aux utilisateurs de spécifier une ou plusieurs conditions préalables pour l'action d'échelle.
Si --current-replicas
ou --resource-version
est spécifié, il est validé avant que la mise à l'échelle ne soit tentée, et il est garanti que la condition préalable est vraie lorsque la balance est envoyée au serveur.
Exemples:
# 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/web