Quand je suis le processus de liste de l'hôte en utilisant cette commande :

[root@fat001 ~]# ps -o user,pid,pidns,%cpu,%mem,vsz,rss,tty,stat,start,time,args ax|grep "room"
root      3488 4026531836  0.0  0.0 107992   644 pts/11   S+   20:06:01 00:00:00 tail -n 200 -f /data/logs/soa-room/spring.log
root     18114 4026534329  8.5  2.2 5721560 370032 ?      Sl   23:17:51 00:01:53 java -jar /root/soa-room-service-1.0.0-SNAPSHOT.jar
root     19107 4026531836  0.0  0.0 107992   616 pts/8    S+   19:14:10 00:00:00 tail -f -n 200 /data/logs/soa-room/spring.log
root     23264 4026531836  0.0  0.0 112684  1000 pts/13   S+   23:39:57 00:00:00 grep --color=auto room
root     30416 4026531836  3.4  3.4 4122552 567232 ?      Sl   19:52:03 00:07:53 /opt/dabai/tools/jdk1.8.0_211/bin/java -Xmx256M -Xms128M -jar -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5011 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/dump /data/jenkins/soa-room-service/soa-room-service-1.0.0-SNAPSHOT.jar

Je suis très sûr que ce processus est le processus de kubernetes pod :

root     18114 4026534329  8.5  2.2 5721560 370032 ?      Sl   23:17:51 00:01:53 java -jar /root/soa-room-service-1.0.0-SNAPSHOT.jar

Pourquoi le processus du conteneur kubernetes s'affiche sur l'hôte ? Il devrait être dans le conteneur du docker !!!!

0
Dolphin 4 févr. 2020 à 18:58

1 réponse

Meilleure réponse

Ceci est parfaitement normal. Les conteneurs ne sont pas des VM.

Chaque processus exécuté par Docker est exécuté sur le noyau hôte. Il n'y a pas d'isolement en terme de Noyau.

Bien sûr, il existe une isolation en termes de processus entre les conteneurs, car les processus de chaque conteneur sont exécutés dans un espace de noms de processus isolé.

En résumé : le conteneur A ne peut pas voir le processus du conteneur B (enfin, pas par défaut), cependant comme tous les processus des conteneurs sont exécutés à l'intérieur de votre hôte, vous pourrez toujours voir le processus depuis votre hôte.

2
Marc ABOUCHACRA 4 févr. 2020 à 16:29