2015-12-17 8 views
9

ich einen Kubernetes lokalen Cluster nur installiert, aber wenn ich den Befehl versuchtKubernetes lokalen Cluster Schoten bekam erstellen Fehler wie ‚ErrImagePull‘ und ‚ImagePullBackOff‘

cluster/kubectl.sh run my-nginx --image=nginx --replicas=2 --port=80 

zu erstellen und Schoten zu laufen, hier ist das, was ich habe :

NAME    READY  STATUS    RESTARTS AGE 
my-nginx-00t7f 0/1  ContainerCreating 0   23m 
my-nginx-spy2b 0/1  ContainerCreating 0   23m 

und ich kubectl logs, bekam ich

Pod "my-nginx-00t7f" in namespace "default" : pod is not in 'Running', 'Succeeded' or 'Failed' state - State: "Pending" 

Scheint, dass es im Status "Ausstehend" hängen geblieben ist. Dann habe ich ‚kubectl beschreiben‘ und bekam

Name:       my-nginx-00t7f 
Namespace:      default 
Image(s):      nginx 
Node:       127.0.0.1/127.0.0.1 
Start Time:      Thu, 17 Dec 2015 22:27:18 +0800 
Labels:       run=my-nginx 
Status:       Pending 
Reason: 
Message: 
IP: 
Replication Controllers:  my-nginx (2/2 replicas created) 
Containers: 
    my-nginx: 
    Container ID: 
    Image:    nginx 
    Image ID: 
    QoS Tier: 
     cpu:    BestEffort 
     memory:   BestEffort 
    State:    Waiting 
     Reason:   ContainerCreating 
    Ready:    False 
    Restart Count:  0 
    Environment Variables: 
Conditions: 
    Type   Status 
    Ready   False 
Volumes: 
    default-token-p09p6: 
    Type:  Secret (a secret that should populate this volume) 
    SecretName: default-token-p09p6 
Events: 
    FirstSeen  LastSeen  Count From     SubobjectPath Type   Reason   Message 
    ---------  --------  ----- ----     ------------- --------  ------   ------- 
    26m   26m    1  {scheduler }       Normal   Scheduled  Successfully assigned my-nginx-00t7f to 127.0.0.1 
    22m   1m    79  {kubelet 127.0.0.1}      Warning   FailedSync  Error syncing pod, skipping: ImagePullBackOff 
    24m   5s    8  {kubelet 127.0.0.1}      Warning   FailedSync  Error syncing pod, skipping: ErrImagePull 

Es scheint, mein Docker Bilder nicht ziehen kann, aber tatsächlich kann es, gibt es kein Problem, wenn ich docker pull nginx.

+0

Ich wäre daran interessiert, die kubelet-Protokolle für den Knoten zu sehen, für den dieser Pod geplant war. Könntest du einen Gedanken oder Pastebin mit ihnen posten? Es wird helfen, zu diagnostizieren. –

+0

Vielen Dank. Ich habe, wo das Problem liegt. Ich werde von GFW blockiert, so dass ich das Bild gcr.io/google_containers/pause:2.0 nicht ziehen kann, obwohl ich ein Bild von dockerhub ziehen kann. Aber ich verstehe nicht, was ist die Funktion von Bild 'Pause: 2.0' in kubernete? Warum kann ich keinen Pod ohne es erstellen? –

Antwort

2

Ich nehme an, dass Sie herausgefunden haben, dass es der Pause-Container war, der nicht aus den Kubelet-Protokollen gezogen werden konnte.

Kubernetes muss einen Container für den Pod erstellen, um freigegebene Ressourcen wie den Netzwerknamespace zu speichern. Es verwendet den Pause-Container für diesen, der ein sehr kleiner Container ist, der nur für immer schläft.

0

Wenn sich Ihr Container im Status "Ausstehend" befindet, überprüfen Sie die Kube-Schedulardienste. Wenn es gestoppt ist, schalten Sie es ein und überprüfen Sie es.