2015-11-18 7 views
5

डॉकर के साथ, मैं syslog पर कंटेनर लॉग अग्रेषित करने के लिए लॉग-ड्राइवर = syslog कमांड लाइन विकल्प पास कर सकता हूं। मैं Kubernetes yaml/json descriptor के माध्यम से इन डॉकर तर्कों को कैसे पास करूं?कुबर्नेट्स में "--log-driver = syslog" की नकल कैसे करें

उत्तर

3

उपलब्ध दस्तावेज़ीकरण से शुरू: आपके मामले में logging और volumes पर। इन दोनों स्रोतों को एक साथ ले रहा है हम निम्नलिखित की तरह कुछ पर पहुंचने:

... 
containers: 
    - name: syslogtest 
    image: ubuntu:14.04 
    volumeMounts: 
     - name: logvol 
     mountPath: /dev/log 
     readOnly: false 
volumes: 
    - name: logvol 
    source: 
     hostDir: 
     path: /dev/log 
... 
+0

पर उन फ़ाइलों को ढूंढें मैं वॉल्यूम बढ़ने के बजाए --log-driver = syslog डॉकर विकल्प का उपयोग कर देख रहा हूं। इस तरह मैं एक डॉकर छवि बनाने के सर्वोत्तम अभ्यास का पालन कर सकता हूं जैसे कि कंटेनर stdout/stderr पर लॉग ऑन करता है लेकिन क्लाउड पर ,log-driver = syslog/fluentd को सेट करके मैं लॉग को केंद्रीय लॉगिंग स्टोर जैसे elasticsearch पर एकत्र कर सकता हूं। –

+0

जैसा कि मैंने कहा था, ऊपर सबसे अच्छा अभ्यास है, उदाहरण के लिए https://github.com/kubernetes/kubernetes/blob/release-1.0/contrib/logging/fluentd-sidecar-gcp/README.md –

+0

ओह देखें। एक नज़र डालेंगे .. धन्यवाद @ माइकल –

1

मुझे नहीं लगता है कि Kubernetes फली json फ़ाइल में इस तरह के --log चालक विकल्प की ज़रूरत है। मेरे अनुभव के रूप में, आप डॉकर सेवा में ऐसी सेटिंग सेट कर सकते हैं। यानी

/etc/systemd/system/docker.service 

की जाँच करें और ExecStart =/usr/bin/डोकर डेमॉन --log चालक = json-फ़ाइल blablabla निर्धारित किया है। अधिक जानकारी यहां प्राप्त की जा सकती है: https://docs.docker.com/engine/admin/logging/overview/#configure-logging-drivers

और अधिक, यदि आप यह --log-driver सेट नहीं करते हैं, तो डिफ़ॉल्ट रूप से जेसन फ़ाइल बनाई जाएगी, जो आपके कंटेनर के सभी लॉग को कुबर्नेट्स फोड में एकत्रित कर सकती है, आप कर सकते हैं

your_docker_runtime_root/docker/containers/container_id/container_id-json.json 
संबंधित मुद्दे