2016-04-04 15 views
0

Ich versuche, mit Kubernetes DaemonSets loszukommen und überhaupt kein Glück zu haben. Ich habe erfolglos nach einer Lösung gesucht. Ich hoffe, dass hier jemand helfen kann.daemonset erstellt keine Pods

Zuerst habe ich this ticket gesehen. Der Neustart des Controller-Managers scheint nicht hilfreich zu sein. Wie Sie hier sehen können, wurden alle anderen Kube-Prozesse gestartet, nachdem der API-Server und der API-Server '-runtime-config = extensions/v1beta1 = true' gesetzt haben.

kube  31398  1 0 08:54 ?  00:00:37 /usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd_servers=http://dock-admin:2379 --address=0.0.0.0 --allow-privileged=false --portal_net=10.254.0.0/16 --admission_control=NamespaceAutoProvision,LimitRanger,ResourceQuota --runtime-config=extensions/v1beta1=true 
kube  12976  1 0 09:49 ?  00:00:28 /usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://127.0.0.1:8080 --cloud-provider= 
kube  29489  1 0 11:34 ?  00:00:00 /usr/bin/kube-scheduler --logtostderr=true --v=0 --master=http://127.0.0.1:8080 

jedoch api-Versionen zeigt nur die Version 1:

$ kubectl api-versions 
Available Server Api Versions: v1 

Kubernetes Version 1.2:

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"86327329213fed4af2661c5ae1e92f9956b24f55", GitTreeState:"clean"} 
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"86327329213fed4af2661c5ae1e92f9956b24f55", GitTreeState:"clean"} 

Die DaemonSet erstellt wurde, scheint aber geplant keine Schoten zu haben (Status .desiredNumberScheduled).

$ kubectl get ds -o json 
{ 
    "kind": "List", 
    "apiVersion": "v1", 
    "metadata": {}, 
    "items": [ 
     { 
      "kind": "DaemonSet", 
      "apiVersion": "extensions/v1beta1", 
      "metadata": { 
       "name": "ds-test", 
       "namespace": "dvlp", 
       "selfLink": "/apis/extensions/v1beta1/namespaces/dvlp/daemonsets/ds-test", 
       "uid": "2d948b18-fa7b-11e5-8a55-00163e245587", 
       "resourceVersion": "2657499", 
       "generation": 1, 
       "creationTimestamp": "2016-04-04T15:37:45Z", 
       "labels": { 
        "app": "ds-test" 
       } 
      }, 
      "spec": { 
       "selector": { 
        "app": "ds-test" 
       }, 
       "template": { 
        "metadata": { 
         "creationTimestamp": null, 
         "labels": { 
          "app": "ds-test" 
         } 
        }, 
        "spec": { 
         "containers": [ 
          { 
           "name": "ds-test", 
           "image": "foo.vt.edu:1102/dbaa-app:v0.10-dvlp", 
           "ports": [ 
            { 
             "containerPort": 8080, 
             "protocol": "TCP" 
            } 
           ], 
           "resources": {}, 
           "terminationMessagePath": "/dev/termination-log", 
           "imagePullPolicy": "IfNotPresent" 
          } 
         ], 
         "restartPolicy": "Always", 
         "terminationGracePeriodSeconds": 30, 
         "dnsPolicy": "ClusterFirst", 
         "securityContext": {} 
        } 
       } 
      }, 
      "status": { 
       "currentNumberScheduled": 0, 
       "numberMisscheduled": 0, 
       "desiredNumberScheduled": 0 
      } 
     } 
    ] 
} 

Hier ist meine yaml Datei die DaemonSet

apiVersion: extensions/v1beta1 
kind: DaemonSet 
metadata: 
    name: ds-test 
spec: 
    selector: 
    app: ds-test 
    template: 
    metadata: 
     labels: 
     app: ds-test 
    spec: 
     containers: 
     - name: ds-test 
     image: foo.vt.edu:1102/dbaa-app:v0.10-dvlp 
     ports: 
      - containerPort: 8080 

Mit Hilfe dieser Datei zu erstellen, die DaemonSet erscheint erstellen (I 'daemonset "ds-Test" erstellt' erhalten) zu arbeiten, aber keine Schoten erstellt:

$ kubectl get pods -o json 
{ 
    "kind": "List", 
    "apiVersion": "v1", 
    "metadata": {}, 
    "items": [] 
} 
+0

Können Sie "kubectl describe ds ds-test" ausführen, um weitere Informationen zu dem von Ihnen erstellten Daemonset zu erhalten? Sie können auch das Protokoll des kube-controller-managers überprüfen, um zu sehen, ob (1) ein Daemon-Set-Controller beim Start gestartet wurde, (2) der 'ds-test' vom Controller synchronisiert wurde. –

+0

$ kubectl Beschreibung ds ds-test Name: ds-test Bild (er): foo.vt.edu:1102/dbaa-app:v0.10-DVLP Selector: app = ds-Test Node-Selector: Labels: app = ds-Test gewünschte Anzahl von Knoten Geplant: 0 Aktuelle Anzahl der Knoten Geplant: 0 Anzahl der Knoten Misscheduled: 0 Pods Status: 0 Running/0 Waiting/0 Erfolgreich/0 Fehlgeschlagen Keine Ereignisse. –

+0

Wie viele Knoten hat Ihr Cluster und welche Größe? Verfügen Sie über genügend Kapazität in Ihrem Cluster, um den Pod zu platzieren? – dward

Antwort

1

(ich gepostet als Kommentar wäre, wenn ich genug Ruf hatte)

conf ich bin verwendet von Ihrer Ausgabe.

kubectl api-versions sollte extensions/v1beta1 ausdrucken, wenn es auf dem Server aktiviert ist. Da dies nicht der Fall ist, sieht es so aus, als wäre extensions/v1beta1 nicht aktiviert.

Aber kubectl get ds sollte fehlschlagen, wenn Erweiterungen/v1beta1 nicht aktiviert ist. Ich kann also nicht herausfinden, ob extensions/v1beta1 auf Ihrem Server aktiviert ist oder nicht.

Können Sie versuchen, GET masterIP/apis und sehen, ob Erweiterungen dort aufgeführt ist? Sie können auch zu masterIP/apis/extensions/v1beta1 gehen und sehen, ob daemonsets dort aufgelistet ist.

Auch ich sehe kubectl version sagt 1.2, aber dann kubectl api-versions sollte nicht die Zeichenfolge auszudrucken Available Server Api Versions (diese Zeichenfolge in 1.1 entfernt wurde: https://github.com/kubernetes/kubernetes/pull/15796).

+0

$ curl http: // localhost: 8080/apis { "Gruppen": [{ "name": "Erweiterungen", "Versionen": [{ "groupVersion": "extensions/v1beta1", "Version": "v1beta1" } ], "preferredVersion": { "groupVersion": "extensions/v1beta1", "Version": "v1beta1" } } ] –

+0

'curl http:// localhost: 8080/apis meldet, dass extensions/v1beta1 installiert ist. 'curl http: // localhost: 8080/apis/extensions/v1beta1' meldet, dass Daemonsets verfügbar sind. –

+0

Super! das bedeutet, dass Apisvere in Ordnung ist. Lass uns Controller-Manager anschauen. Sehen Sie in Controller-Manager-Protokollen ('/ var/log/kube-controller-manager.log')" Starten des Daemon-Set-Controllers "? Werden andere Controller gestartet? (Beispiel: Suchen Sie nach "ReplicaSet-Controller starten", um zu sehen, ob der Replicate-Set-Controller gestartet wurde). –

0

Versuchen:

$ kubectl taint Knoten --alle node-role.kubernetes.io/master:NoSchedule-

Master-Knoten kann nicht Schoten akzeptieren.