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.
Hallo, ich kenne die Alternative, aber ich habe nach einer Möglichkeit gesucht, es mit dem aktuellen Werkzeug zu machen, das ich benutze. – OmriToptix