ฉันได้ติดตั้ง FluentD บนคลัสเตอร์ Kind-Kubernetes บน CentOS VM ที่ทำงานบนแล็ปท็อปของฉัน ฉันมีปัญหาในการรับ FluentD เพื่ออ่านบันทึกเนื่องจากมีข้อผิดพลาดต่อไปนี้
2021-08-29 08:26:31 +0000 [คำเตือน]: #0 [tail_container_logs] /var/log/containers/myapp-77df6bfff9-jcnwc_default_myapp-4d82556157a94e991f011bac956d182e941a122b40b3d53fc67ได้รับการยกเว้นและจะตรวจสอบในครั้งต่อไป
ด้านล่างนี้เป็นไฟล์ Fluff.conf ของฉัน
<system>
@log_level debug
</system>
<source>
@type tail
@id tail_container_logs
path /var/log/containers/*.log
pos_file /var/fluent/log/containers.log.pos
#time_format %Y-%m-%dT%H:%M:%S
tag kubernetes.*
format json_in_json
read_from_head true
</source>
<filter kubernetes.**>
@type kubernetes_metadata
</filter>
<match kubernetes.**>
@type file
@id output1
path /var/fluent/log/log/data.*.log
append true
#time_slice_format %Y%m%d
#time_slice_wait 10m
#time_format %Y%m%dT%H%M%S%z
</match>
ในการปรับใช้ไฟล์ YAML ฉันมีการกำหนดค่าดังต่อไปนี้
ข้อมูลจำเพาะ:
ตู้คอนเทนเนอร์:
- ชื่อ: คล่องของฉัน
ภาพ: กำหนดเองได้อย่างคล่องแคล่ว
imagePullPolicy: ไม่เคย
ทรัพยากร:
ขีด จำกัด :
หน่วยความจำ: 800Mi
ปริมาณการติดตั้ง:
- ชื่อ: วาร์ล็อก
mountPath: /var/log
- ชื่อ: varlogpods
mountPath: /var/log/pods
อ่านอย่างเดียว: จริง
- ชื่อ: วาร์ฟลูเอน
mountPath: /var/คล่องแคล่ว/log
การสิ้นสุดGracePeriodวินาที: 30
ปริมาณ:
- ชื่อ: วาร์ล็อก
เส้นทางโฮสต์:
เส้นทาง: /var/log
- ชื่อ: varlogpods
เส้นทางโฮสต์:
เส้นทาง: /var/log/pods
- ชื่อ: วาร์ฟลูเอน
เส้นทางโฮสต์:
เส้นทาง: /var/คล่องแคล่ว/บันทึก
ฉันได้อ่านหลายกระทู้ที่เกี่ยวข้องกับปัญหาที่คล้ายกัน แต่ดูเหมือนว่าไม่มีหัวข้อใดที่จะแก้ปัญหาที่ฉันได้รับโดยเฉพาะ
เมื่อฉันดูที่ไฟล์บันทึกใน /var/log/คอนเทนเนอร์
ในพ็อด FluentD ฉันเห็นว่ามีลิงก์ไปยัง /var/log/พ็อด
โฟลเดอร์ นี่คือตัวอย่างเอาต์พุตของรายชื่อไดเร็กทอรีภายในโฟลเดอร์ '/var/log/containers'
lrwxrwxrwx 1 root root 93 Aug 29 05:02 myapp-77df6bfff9-jcnwc_default_myapp-4d82556157a94e991f011bac956d182e941a122b40b3d53fc67dfd6f39aef5d4.log -> /var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a/myapp/3.log
เมื่อดูการอนุญาตไฟล์ของไฟล์บันทึกใน FluentD pod นี่คือสิ่งที่ฉันเห็น
/var/log/pods # ls -ltr
รวม 0
drwxr-xr-x 3 รูทรูท 28 ส.ค. 27 15:29 น. kube-system_kube-scheduler-kind-control-plane_69dd939498054a211c3461b2a9cc8d26
drwxr-xr-x 3 รูทรูท 37 ส.ค. 27 15:29 น. kube-system_kube-controller-manager-kind-control-plane_46dac9a538838115821dfd9559149484
drwxr-xr-x 3 รูทรูท 28 ส.ค. 27 15:29 น. kube-system_kube-apiserver-kind-control-plane_bd1c21fe1f0ef615e0b5e41299f1be61
drwxr-xr-x 3 รูทรูท 18 ส.ค. 27 15:29 น. kube-system_etcd-kind-control-plane_24ba8551bcc724a32d591bb02c423d92
drwxr-xr-x 3 รูทรูท 24 ส.ค. 27 15:30 น. kube-system_kube-proxy-hqdkp_6ea129ba-1b2e-425e-a77b-ad75dacc4cda
drwxr-xr-x 3 รูทรูท 25 ส.ค. 27 15:30 น. kube-system_kindnet-dsjr6_32cc1367-ce01-481d-b626-58c00ea9aa6c
drwxr-xr-x 3 รูต
drwxr-xr-x 3 รูต
drwxr-xr-x 3 รูท
drwxr-xr-x 3 รูท
drwxr-xr-x 3 รูท
/var/log/ฝัก #
/var/log/ฝัก #
/var/log/pods # cd default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a/
/var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a # ls -ltr
รวม 0
drwxr-xr-x 2 รูทรูท 32 ส.ค. 29 05:02 myapp
/var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a # cd myapp/
/var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a/myapp # ls -ltr
รวม 772
-rw-r----- 1 รูท 2974 29 ส.ค. 05:02 2.log
-rw-r----- 1 รูท 729669 29 ส.ค. 23:49 น. 3.log
/var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a/myapp
อย่างที่คุณเห็นไฟล์บันทึก เช่น 2.log, 3.log
ไม่มีสิทธิ์อ่านสำหรับผู้อื่น
สิ่งนี้สืบทอดมาจากโฮสต์ที่สร้างไฟล์ดังนั้นดูเหมือนว่าจะเป็นปัญหาเกี่ยวกับสิทธิ์ที่กำหนดโดยไดรเวอร์การบันทึก Docker เมื่อสร้างไฟล์
ฉันต้องการทราบวิธีเปิดใช้งานสิทธิ์การอ่านสำหรับไฟล์ที่สร้างโดยคอนเทนเนอร์
ขอขอบคุณหากคุณสามารถช่วยได้