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
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. –