Con la finestra mobile, posso passare l'opzione della riga di comando log-driver = syslog per inoltrare i log del contenitore a syslog. Come faccio a passare questi argomenti docker tramite Kubernetes yaml/json descriptor?Come imitare "--log-driver = syslog" in Kubernetes
risposta
A partire dalla documentazione disponibile: nel tuo caso su logging e volumes. Prendendo queste due fonti insieme si arriva a qualcosa di simile al seguente:
...
containers:
- name: syslogtest
image: ubuntu:14.04
volumeMounts:
- name: logvol
mountPath: /dev/log
readOnly: false
volumes:
- name: logvol
source:
hostDir:
path: /dev/log
...
Non penso kubernetes hanno bisogno di fare tali opzioni --log-driver nel file di pod JSON. In base alla mia esperienza, puoi impostare tali impostazioni nel servizio docker. cioè controllare
/etc/systemd/system/docker.service
e impostare ExecStart =/usr/bin/finestra mobile daemon --log-driver = JSON-file di blablabla. ulteriori informazioni possono essere ottenute qui: https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers
ulteriore, se non si imposta questo --log-driver, per impostazione predefinita verrà creato il file json, che ha raccolto tutti i registri dei contenitori in pod kubernetes, è possibile trova quei file su
your_docker_runtime_root/docker/containers/container_id/container_id-json.json
Sto cercando di usare l'opzione --log-driver = syslog docker piuttosto che montare volumi. In questo modo posso seguire la best practice di costruire un'immagine docker in modo tale che il container registri su stdout/stderr ma su cloud, impostando --log-driver = syslog/fluentd Posso raccogliere i log in un archivio di registrazione centrale come elasticsearch. –
Come ho detto, sopra è la migliore pratica, vedere anche l'esempio https://github.com/kubernetes/kubernetes/blob/release-1.0/contrib/logging/fluentd-sidecar-gcp/README.md –
oh capisco. Daremo un'occhiata .. grazie @ Michael –