en utilisant kubectl exec -ti POD_NAME bash
Je peux accéder au terminal à l'intérieur du conteneur et exécuter la commande.
Je peux comprendre la facilité d'utilisation et la commodité de la commande ci-dessus. En tant qu’opérateur K8, j’utilise exec régulièrement.
Cependant, quel est le cas d'utilisation de kubectl attach POD_NAME
?
Comment peut-il être tilisé? Quel est le réel but de cela? Dans quelle situation ou circonstance peut-il être utilisé?
Les cas d'utilisation de kubectl attach sont décrits dans kubernetes/numéro 23335 .
Il peut être associé au processus principal exécuté par le conteneur, qui n'est pas toujours bash.
Contrairement à exec, qui vous permet d'exécuter toute processus dans le conteneur (souvent: bash)
# Get output from running pod 123456-7890, using the first container by default
kubectl attach 123456-7890
# Get output from Ruby-container from pod 123456-7890
kubectl attach 123456-7890 -c Ruby-container
Cet article propose:
En plus de l'exécution interactive des commandes, vous pouvez également vous connecter à n'importe quel processus en cours d'exécution. Comme
kubectl logs
, vous obtiendrez les données stderr et stdout, mais avec attach, vous pourrez également envoyer stdin de votre terminal au programme.
Excellent pour le débogage interactif, ou même pour l'envoi ctrl-c à une mauvaise application.
$> kubectl attach redis -i
Encore une fois, la principale différence réside dans le processus avec lequel vous interagissez dans le conteneur: