Za pomocą okna dokowania mogę przekazać opcję log-driver = syslog w linii poleceń, aby przesłać dzienniki kontenerów do syslog. W jaki sposób przekazać te argumenty dokowania za pomocą deskryptora yaml/json Kubernetes?Jak naśladować "--log-driver = syslog" w Kubernetes
5
A
Odpowiedz
3
Począwszy od dostępnej dokumentacji: w twoim przypadku na logging i volumes. Biorąc te dwa źródła razem otrzymujemy coś jak poniżej:
...
containers:
- name: syslogtest
image: ubuntu:14.04
volumeMounts:
- name: logvol
mountPath: /dev/log
readOnly: false
volumes:
- name: logvol
source:
hostDir:
path: /dev/log
...
1
nie sądzę kubernetes trzeba robić takie opcje --log sterownika w pliku json strąk. Moim doświadczeniem możesz ustawić takie ustawienie w usłudze dokowania. tj sprawdzić
/etc/systemd/system/docker.service
i ustawić ExecStart =/usr/bin/Döcker demona --log-driver = json-file blablabla. więcej informacji można uzyskać tutaj: https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers
Co więcej, jeśli nie ustawisz tego - log-driver, domyślnie zostanie utworzony plik json, który zebrał wszystkie logi twoich kontenerów w zasobach kubernetes, możesz znajdź te pliki na
your_docker_runtime_root/docker/containers/container_id/container_id-json.json
Szukam przy użyciu opcji --docian --log-driver = syslog zamiast montowania woluminów. W ten sposób mogę postępować zgodnie z najlepszą praktyką budowania obrazu dokowanego w taki sposób, że kontener loguje się do stdout/stderr, ale w chmurze, ustawiając - log-driver = syslog/fluentd mogę zebrać logi do centralnego magazynu logów, takiego jak elasticsearch. –
Jak już powiedziałem, powyżej jest najlepszą praktyką, zobacz także przykład https://github.com/kubernetes/kubernetes/blob/release-1.0/contrib/logging/fluentd-sidecar-gcp/README.md –
oh widzę. Będzie wyglądać ... dzięki @Michael –