imitieren kann Ich kann log-driver = syslog Befehlszeilenoption übergeben, Container-Protokolle an Syslog weiterzuleiten. Wie übergebe ich diese Docker-Argumente über den Kubernetes-YAML/JSON-Deskriptor?Wie "--log-driver = syslog" in Kubernetes
5
A
Antwort
3
Beginnend mit der verfügbaren Dokumentation: in Ihrem Fall auf logging und volumes. Wenn man diese beiden Quellen zusammen kommen wir in etwa wie folgt:
...
containers:
- name: syslogtest
image: ubuntu:14.04
volumeMounts:
- name: logvol
mountPath: /dev/log
readOnly: false
volumes:
- name: logvol
source:
hostDir:
path: /dev/log
...
1
Ich glaube nicht, Kubernetes solche --log-Treiberoptionen in pod JSON-Datei tun müssen. Nach meiner Erfahrung können Sie diese Einstellung im Andockdienst festlegen. d.h überprüfen
/etc/systemd/system/docker.service
und ExecStart =/usr/bin/Docker Daemon --log-driver = json-Datei blablabla gesetzt. Weitere Informationen erhalten Sie hier: https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers
weiter mehr, wenn Sie diesen --log-Treiber nicht einstellen, wird standardmäßig die JSON-Datei erstellt, die alle Protokolle Ihrer Container in kubernetes Pods sammelte, können Sie finden Sie diese Dateien auf
your_docker_runtime_root/docker/containers/container_id/container_id-json.json
Ich bin mit der Option --log-driver = syslog docker Option anstatt Montage Volumes betrachten. Auf diese Weise kann ich dem Best Practice folgen, ein Docker-Image so zu erstellen, dass der Container sich in stdout/stderr, aber in der Cloud einloggt, indem ich --log-driver = syslog/fluentd einnehme und die Logs zu einem zentralen Logging-Store wie elasticsearch sammle. –
Wie gesagt, oben ist die beste Praxis, siehe auch Beispiel https://github.com/kubernetes/kubernetes/blob/release-1.0/contrib/logging/fluentd-sidecar-gcp/README.md –
oh ich sehe. Ich werde einen Blick darauf werfen .. Danke @Michael –