Les cas d'utilisation pour kubectl joindre sont discutés dans kubernetes/question 23335.
Il peut se brancher sur les principaux processus géré par le conteneur, ce qui n'est pas toujours bash.
Contrairement à exec, qui vous permet d'exécuter tout 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 de:
En plus interactive de l'exécution des commandes, vous pouvez maintenant attacher à n'importe quel processus en cours d'exécution. Comme kubectl logs
, vous obtiendrez stderr et stdout de données, mais avec les joindre, vous serez également en mesure d'envoyer stdin à partir de votre terminal pour le programme.
Génial pour le débogage interactif, ou même juste d'envoyer ctrl-c à un comportement anormal de l'application.
$> kubectl attach redis -i
Encore une fois, la principale différence est dans le processus d'interagir avec les dans le conteneur:
- exec: n'importe quel que vous voulez créer
- joindre: celui qui est actuellement en cours d'exécution (pas le choix)