2016-01-20 13 views
6

Wir betreiben einen Jetty-Dienst auf der Google Container-Engine. Dieser eine Dienst läuft gut in einem Pod mit einem RC. Wir können es herunterfahren, es wieder aufbauen und alle möglichen Dinge tun und es wird immer noch funktionieren.Kubernetes: Docker-Pod-Start schlägt fehl, außer

Jetzt wollen wir unsere Infrastruktur mit einem Debian-Image erweitern, das etwas anderes läuft. Lokal funktioniert das Andockfenster gut und wir können auf die Debian-Befehlszeile zugreifen. Sobald wir versuchen, den Pod in der Cloud auszuführen, bekommen wir Probleme.

Die Dockerfile wir verwenden enthält: FROM debian: latest Dann führen wir die nächsten Befehle:

docker build -t eu.gcr.io/project_id/debstable:stable . 

gcloud docker push eu.gcr.io/project_id/debstable:stable 

kubectl run debstable --image=eu.gcr.io/project_id/debstable:stable 

Der Pod empfängt die CrashLoopBackOff STATUS und hält auf einen Neustart. Teil der Protokolle zeigen dies:

I0120 14:19:58.438979 3479 kubelet.go:2012] SyncLoop (ADD): "debstable-blvdi_default" 
I0120 14:19:58.478235 3479 manager.go:1707] Need to restart pod infra container for "debstable-blvdi_default" because it is not found 
I0120 14:20:00.025467 3479 server.go:944] GET /stats/default/debstable-blvdi/e2ab2ffc-bf80-11e5-a1d8-42010af001a5/debstable: (100.384µs) 404 [[Go 1.1 package http] 10.0.0.3:40650] 
I0120 14:20:05.017006 3479 server.go:944] GET /stats/default/debstable-blvdi/e2ab2ffc-bf80-11e5-a1d8-42010af001a5/debstable: (56.159µs) 404 [[Go 1.1 package http] 10.0.0.3:40694] 
I0120 14:20:10.015072 3479 server.go:944] GET /stats/default/debstable-blvdi/e2ab2ffc-bf80-11e5-a1d8-42010af001a5/debstable: (66.802µs) 404 [[Go 1.1 package http] 10.0.0.3:40708] 
I0120 14:20:15.017521 3479 server.go:944] GET /stats/default/debstable-blvdi/e2ab2ffc-bf80-11e5-a1d8-42010af001a5/debstable: (32.91µs) 404 [[Go 1.1 package http] 10.0.0.3:40566] 
I0120 14:20:18.530030 3479 manager.go:2022] Back-off 10s restarting failed container=debstable pod=debstable-blvdi_default 

Die Docker Info die Versionen zeigt, die relevant sein können:

$ sudo docker info 
Containers: 24 
Images: 68 
Storage Driver: aufs 
Root Dir: /var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 116 
Dirperm1 Supported: true 
Execution Driver: native-0.2 
Logging Driver: json-file 
Kernel Version: 3.16.0-0.bpo.4-amd64 
Operating System: Debian GNU/Linux 7 (wheezy) 
CPUs: 1 
Total Memory: 3.625 GiB 

WARNING: No swap limit support 

Dank und guten Tag

+2

kubectl run erstellt einen RC + Pod mit Ihrem Image als einen Container. Es rät nicht, einen Befehl in dem Container auszuführen, also zB: etwas wie "kubectl run ubuntu --image = ubuntu: 14.04" wird einen Crashloop eingeben, weil der Container immer wieder beendet wird, aber eine Neustart-Strategie verlangt nach Neustarts. Wenn Sie einen Befehl haben, können Sie 'kubectl run --image = foo -i cmd' angeben. –

Antwort

2

Prashanth B war richtig! Wenn keine Befehle vorhanden sind, wird der Pod im Crashloop neu gestartet.

Danke und guten Tag.