2016-04-24 14 views
3

Ich bin der k8s logging instructions zur Konfiguration der Cluster-Level-Protokollierung folgen. Ich benutze kube-aws cli Tool, um den Cluster zu konfigurieren, und ich kann keinen Weg finden, es zu funktionieren. Ich habe versucht, die env vars, wie sie in der k8s Logging-Guide (KUBE_ENABLE_NODE_LOGGING und KUBE_LOGGING_DESTINATION) erwähnt, vor dem Ausführen von kube-aws up, aber das schien nichts zu ändern.Config Cluster-Level-Protokollierung mit Kubernetes auf AWS mit Coreos

Danach habe ich versucht, die es und Kibana rc und Dienste manuell ausgeführt wird, indem sie von der Cluster/addons/fluentd-Elasticsearch Verzeichnis auf K8S GitHub Repo nehmen, aber das lief nur die spezifische Dienste und nicht die fluentd-elasticsearch Service, der auch durch das Tutorial-Beispiel laufen sollte.

läuft kubectl get pods --namespace=kube-system gibt Folgendes zurück:

enter image description here

wo wir sehen können, dass die fluentd-elasticsearch-kubernetes-node fehlt.

auch versucht, dem Cluster verbinden aber nicht mit:

unbefugtem

der k8s logging instructions folgenden und Ausführen des Befehls kubectl config view keinen Benutzernamen und Passwort zurückzukehren, und wenn versucht, die es den Zugriff auf url, ich habe keinen Dialog mit der Frage nach Benutzername und Passwort bekommen. Nicht sicher, ob es sich um das erste Problem handelte.

Nicht sicher, was ich hier vermisse.

Danke.

Antwort

0

KUBE_ENABLE_NODE_LOGGING und KUBE_LOGGING_DESTINATION env vars werden von kube-up.sh Skript verwendet. Ich weiß nicht viel über aws cli-Tool, das Sie erwähnt haben, aber wenn man sich den Code anschaut, sieht es nicht so aus, als ob diese env vars diesen cli beeinflussen.

http://kubernetes.io/docs/getting-started-guides/aws/ erläutert die Schritte, die erforderlich sind, um einen kubernetes-Cluster in AWS mithilfe des Skripts kube-up anzuzeigen.

+0

Hallo, ich kenne die Alternative, aber ich habe nach einer Möglichkeit gesucht, es mit dem aktuellen Werkzeug zu machen, das ich benutze. – OmriToptix

1

So scheint es, dass es keine Unterstützung dafür ist, auf kube-aws derzeit unter Angabe einer der Autoren:

Wir arbeiten derzeit an einem kube-wurde Verteilung für diesen Ansatz, der Kibana umfasst zur Visualisierung der elastischen Suchdaten.

Auch eine vorgeschlagene Abhilfe erscheint in dieser Ausgabe Seite mit zusätzlichen Details in Bezug auf seinen Status: https://github.com/coreos/coreos-kubernetes/issues/320

1

Ich habe es geschafft, das Cluster-Level-Protokollierung erhalten auf einem kleinen Test Cluster ausgeführt wird gestartet durch die CoreOS kube-aws Werkzeug mit den folgenden Schritten. Bitte beachten Sie, dass ich, obwohl ich diesen Lauf hatte, nicht wirklich genug damit gespielt habe, um zu garantieren, dass alles korrekt funktioniert!

aktivieren Logsammlung auf Knoten

Sie müssen die cloud-config-worker und cloud-config-controller bearbeiten kubelet gesammelten Protokolle und erstellen das Protokollverzeichnis

[Service] Environment="RKT_OPTS=--volume var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log" Environment=KUBELET_VERSION=v1.2.4_coreos.1 ExecStartPre=/usr/bin/mkdir -p /var/log/containers ExecStart=/usr/lib/coreos/kubelet-wrapper \ --api-servers=http://127.0.0.1:8080 \ --config=/etc/kubernetes/manifests ...other flags...

(genommen Export aus dem " Verwenden Sie das Cluster-Logging-Add-on 'Abschnitt here)

Inst alle Logging-Komponenten Ich habe die Komponenten von here (wie Sie bereits versucht haben). Wie Sie bemerkt haben, läuft dies nicht fließend und geht davon aus, dass es als Teil des Cluster-Bootstrappings ausgeführt wird.

{ "apiVersion": "extensions\/v1beta1", "kind": "DaemonSet", "metadata": { "name": "fluent-elasticsearch", "namespace": "kube-system", "labels": { "k8s-app": "fluentd-logging" } }, "spec": { "template": { "metadata": { "name": "fluentd-elasticsearch", "namespace": "kube-system", "labels": { "k8s-app": "fluentd-logging" } }, "spec": { "containers": [ { "name": "fluentd-elasticsearch", "image": "gcr.io\/google_containers\/fluentd-elasticsearch:1.15", "resources": { "limits": { "memory": "200Mi" }, "requests": { "cpu": "100m", "memory": "200Mi" } }, "volumeMounts": [ { "name": "varlog", "mountPath": "\/var\/log" }, { "name": "varlibdockercontainers", "mountPath": "\/var\/lib\/docker\/containers", "readOnly": true } ] } ], "terminationGracePeriodSeconds": 30, "volumes": [ { "name": "varlog", "hostPath": { "path": "\/var\/log" } }, { "name": "varlibdockercontainers", "hostPath": { "path": "\/var\/lib\/docker\/containers" } } ] } } } }

diese Daemonset läuft auf jedem der Cluster-Knoten fluentd: Um fluentd zum Laufen zu bringen Ich habe die fluentd Daemonset Definition here in eine separate Datei diskutiert extrahiert.

(HINWEIS: Während ich nur versucht habe, diese Komponenten hinzuzufügen, nachdem der Cluster bereits ausgeführt wurde, gibt es keinen Grund, dass Sie diese nicht zu der cloud-config-controller hinzufügen können, um diese gleichzeitig zu erstellen Der Cluster wird gestartet - was mehr mit dem auf dem referenzierten issue besprochenen zusammenhängt.

Diese Anweisungen gehen alle davon aus, dass Sie mit einem Cluster arbeiten, das Sie gerne neu starten oder noch nicht gestartet haben Lassen Sie die Protokollierung laufen - ich gehe davon aus, dass Sie in Ihrer Situation sind. Ich war auch in der Lage, dies an einem bereits bestehenden Cluster zu arbeiten, indem ich die AWS-Einstellungen manuell änderte und zusätzliche Informationen hinzufügte Wenn das tatsächlich das ist, was du versuchst machen.

Verwandte Themen