Docker ile kapsayıcı günlüklerini syslog'a iletmek için log-driver = syslog komut satırı seçeneğini kullanabilirim. Bu docker argümanlarını Kubernetes yaml/json tanımlayıcısı üzerinden nasıl geçebilirim?Kubernetes'te "--log-driver = syslog" nasıl taklit edilir
5
A
cevap
3
Kullanılabilir belgelerle başlayarak: durumunuzda logging ve volumes. Birlikte bu iki kaynağı alarak aşağıdaki gibi bir şey varmak:
...
containers:
- name: syslogtest
image: ubuntu:14.04
volumeMounts:
- name: logvol
mountPath: /dev/log
readOnly: false
volumes:
- name: logvol
source:
hostDir:
path: /dev/log
...
1
i Kubernetes pod json dosyasında böyle --log sürücü seçenekleri yapmanız gereken sanmıyorum. Deneyimim olarak, bu ayarı docker servisine ayarlayabilirsiniz. yani
/etc/systemd/system/docker.service
kontrol etmek ve ExecStart =/usr/bin/liman işçisi cin --log-sürücü = json dosyası blablabla ayarlayın. Daha fazla bilgi buradan edinilebilir: https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers
bundan başka, eğer bu --log sürücüsünü ayarlamazsanız, varsayılan olarak json dosyası oluşturulacak ve kubernetes kapsüllerinde tüm kapsayıcıları toplayabileceksiniz.
Bu dosyaları, birimler birimi yerine, -log-driver = syslog docker seçeneğini kullanarak arıyorum. Bu şekilde kapsayıcının stdout/stderr'e ancak bulut üzerinde oturum açmasına olanak tanıyan bir docker görüntüsü oluşturmanın en iyi uygulamasını izleyebilirim. --log-driver = syslog/fluentd ayarlayarak logları elasticsearch gibi merkezi bir kayıt deposuna alabilirim. –
Dediğim gibi, yukarıdaki en iyi uygulamadır, ayrıca bkz. Https://github.com/kubernetes/kubernetes/blob/release-1.0/contrib/logging/fluentd-sidecar-gcp/README.md –
bir göz atacak .. teşekkürler @Michael –