2015-11-02 9 views
22

Ho conosciuto chiaramente l'utilizzo dell'opzione docker --net=container:NAME_or_ID, ho anche letto il codice sorgente di kubernetes su come configurare il contenitore per utilizzare la rete di InfraContainer, quindi penso che l'unico lavoro del processo nel contenitore gcr.io/google_containers/pause:0.8.0 non sia "pausa", non eseguirà mai operazioni complesse come "ricezione", "invio" o "routing".Che lavoro fa il processo nel contenitore "gcr.io/google_containers/pause:0.8.0"?

Ma non ne sono sicuro perché non riesco a trovare lo Dockerfile di gcr.io/google_containers/pause:0.8.0, quindi ho bisogno che qualcuno lo sappia chiaramente per dirmi la verità, grazie!

risposta

16

Il file Docker è here: aggiunge solo pausa binario a un contenitore vuoto.

Il codice di pausa è here: attende solo fino a quando riceve SIGINT o SIGTERM.

+0

Ok, grazie mille, mi aiuta molto! –

+0

Per motivi di completezza ho postato lo sfondo in una risposta separata @SunGengze ... –

36

In Kubernetes, ogni pod ha un IP e all'interno di un pod esiste un cosiddetto contenitore di infrastruttura, che è il primo contenitore che Kubelet istanzia e acquisisce l'IP del pod e imposta lo spazio dei nomi di rete. Tutti gli altri contenitori nel pod quindi entrano nella rete del contenitore dell'infrra e nello spazio dei nomi IPC. Il contenitore dell'infrra ha la modalità bridge di rete abilitata e tutti gli altri contenitori nel pod condividono il suo spazio dei nomi tramite la modalità contenitore. Il processo iniziale che viene eseguito nel contenitore dell'infrra effettivamente non fa nulla poiché il suo unico scopo è quello di fungere da casa per gli spazi dei nomi.

23

Citando What is the role of 'pause' container?:

Il contenitore pausa è un contenitore che contiene il namespace rete per la cialda. Non fa nulla di 'utile'. (In realtà è solo un po 'di assemblaggio che va a dormire e non si sveglia)

Ciò significa che il vostro contenitore 'apache' può morire, e tornare a la vita, e tutta la configurazione di rete sarà ancora Là. Normalmente se l'ultimo processo in uno spazio dei nomi di rete muore lo spazio dei nomi sarebbe distrutto e la creazione di un nuovo contenitore Apache richiederebbe la creazione di tutte le nuove impostazioni di rete. Con la pausa, avrai sempre quell'ultima cosa nello spazio dei nomi.

Problemi correlati