Je connais bien l'utilisation de l'option docker --net=container:NAME_or_ID
, J'ai également lu le code source de kubernetes sur la façon de configurer le conteneur pour utiliser le réseau de InfraContainer
, donc je pense que le seul travail est le processus dans le conteneur gcr.io/google_containers/pause:0.8.0
fait est "pause", il ne fera jamais aucun travail complexe comme "réception", "envoi" ou "routage".
Mais je n'en suis pas sûr car je ne trouve pas le Dockerfile
de gcr.io/google_containers/pause:0.8.0
, j'ai donc besoin que quelqu'un le sache clairement pour me dire la vérité, merci!
Dans Kubernetes, chaque pod a une IP et dans un pod il existe un soi-disant conteneur d'infrastructure, qui est le premier conteneur que le Kubelet instancie et il acquiert l'IP du pod et configure l'espace de noms du réseau. Tous les autres conteneurs du pod rejoignent ensuite le réseau du conteneur infra et l'espace de noms IPC. Le conteneur infra a le mode de pont réseau activé et tous les autres conteneurs du pod partagent son espace de noms via le mode conteneur. le processus initial qui s'exécute dans le conteneur infra ne fait en fait rien puisque son seul but est de servir de foyer aux espaces de noms.
Citant de Quel est le rôle du conteneur "pause"? :
Le conteneur de pause est un conteneur qui contient l'espace de noms réseau du pod. Cela ne fait rien d'utile. (C'est en fait juste un peu d'assemblage qui s'endort et ne se réveille jamais)
Cela signifie que votre conteneur 'Apache' peut mourir et revenir à la vie, et toute la configuration réseau sera toujours là. Normalement, si le dernier processus dans un espace de noms réseau meurt, l'espace de noms serait détruit et la création d'un nouveau conteneur Apache nécessiterait la création de toute nouvelle configuration réseau. Avec pause, vous aurez toujours cette dernière chose dans l'espace de noms.