Puncte:0

Cum să activați permisiunea de citire pe calea de montare Kubernetes

drapel vn

Am instalat FluentD pe cluster Kind-Kubernetes pe CentOS VM care rulează pe laptopul meu. Întâmpin probleme cu FluentD să citească jurnalele, deoarece aruncă următoarea eroare.

2021-08-29 08:26:31 +0000 [avertisment]: #0 [tail_container_logs] /var/log/containers/myapp-77df6bfff9-jcnwc_default_myapp-4d82556157a94e991f094adread1940f0000000000000000000000Este exclus și va fi examinat data viitoare.

Mai jos este fișierul meu fluent.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>

În fișierul YAML de implementare am următoarea configurație.

specificație:
  containere:
  - nume: my-fluentd
    imagine: custom-fluentd
    imagePullPolicy: Niciodată
    resurse:
      limite:
        memorie: 800 Mi
    volumMonturi:
    - nume: varlog
      mountPath: /var/log
    - nume: varlogpods
      mountPath: /var/log/pods
      readOnly: adevărat
    - nume: varfluent
      mountPath: /var/fluent/log
  terminationGracePeriodSeconds: 30
  volume:
  - nume: varlog
    hostPath:
      cale: /var/log
  - nume: varlogpods
    hostPath:
      cale: /var/log/pods
  - nume: varfluent
    hostPath:
      cale: /var/fluent/logs

Am citit în mai multe fire legate de o problemă similară, dar niciuna dintre ele nu pare să rezolve în mod special problema pe care am avut-o.

Când m-am uitat la fișierele jurnal în /var/log/containers pe podul FluentD, văd că sunt linkuri simbolice către /var/log/pods pliant. Iată un exemplu de ieșire a listei de director din folderul „/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

Când mă uit la permisiunea fișierului jurnal din podul FluentD, asta este ceea ce pot vedea;

/var/log/pods # ls -ltr
total 0
drwxr-xr-x 3 root root 28 Aug 27 15:29 kube-system_kube-scheduler-kind-control-plane_69dd939498054a211c3461b2a9cc8d26
drwxr-xr-x 3 root root 37 Aug 27 15:29 kube-system_kube-controller-manager-kind-control-plane_46dac9a538838115821dfd9559149484
drwxr-xr-x 3 root root 28 Aug 27 15:29 kube-system_kube-apiserver-kind-control-plane_bd1c21fe1f0ef615e0b5e41299f1be61
drwxr-xr-x 3 root root 18 Aug 27 15:29 kube-system_etcd-kind-control-plane_24ba8551bcc724a32d591bb02c423d92
drwxr-xr-x 3 root root 24 august 27 15:30 kube-system_kube-proxy-hqdkp_6ea129ba-1b2e-425e-a77b-ad75dacc4cda
drwxr-xr-x 3 root root 25 august 27 15:30 kube-system_kindnet-dsjr6_32cc1367-ce01-481d-b626-58c00ea9aa6c
drwxr-xr-x 3 root root 36 august 27 15:30 local-path-storage_local-path-provisioner-547f784dff-5rj88_fc2f27cf-3779-4cfb-a517-00f4bf12ee0c
drwxr-xr-x 3 root root 21 august 27 15:30 kube-system_coredns-558bd4d5db-lrzf4_6c526c83-f140-4e14-839c-ce00fa275890
drwxr-xr-x 3 root root 21 august 27 15:30 kube-system_coredns-558bd4d5db-bxp22_5b9836f4-66e0-42e4-a999-2428e910a557
drwxr-xr-x 3 root root 19 august 27 15:34 default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a
drwxr-xr-x 3 root root 24 august 29 23:47 default_my-fluentd-t4bq6_08921212-3c02-478c-83bd-4f9aad37b9cf
/var/log/pods # 
/var/log/pods # 
/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
total 0
drwxr-xr-x 2 root root 32 august 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
total 772
-rw-r----- 1 rădăcină rădăcină 2974 29 august 05:02 2.log
-rw-r----- 1 rădăcină rădăcină 729669 29 august 23:49 3.log
/var/log/pods/default_myapp-77df6bfff9-jcnwc_23e368b2-0df8-49bd-b7d9-9af96a57626a/myapp

După cum puteți vedea fișierele jurnal adică 2.log, 3.log nu are permisiunea de citire pentru alții.

Acesta este moștenit de la gazda pe care sunt create fișierele.Prin urmare, pare să fie o problemă cu permisiunile stabilite de driverul de înregistrare Docker la crearea fișierelor.

Aș dori să știu cum să activez permisiunea de citire pentru fișierele create de containere. Apreciez dacă ați putea ajuta.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.