fluentbit - fluentd 사용시 문제 상황 발생
- fluentd 메모리 사용으로 인해서 죽는 상황이 발생한다
- 이유는 fluentd에서 container log를 가져오는데...
- 만약에
- fluentd가 죽어버리는 상황이 발생하면, container의 log를 처음부터 가져와서 메모리를 많이 쓰게 되면서 죽게된다.
- 이를 막기 위한 방법으로 가장 쉬운 방법은
- ReadfromHead : false
- container log의 tail부터 읽어 오는것으로 container의 log윗부분을 무시하게 된다.
- 문제는 fluentd가 죽었다가 살아나는동안의 log는 누락되게 된다.
- DB 사용
- DB : /var/files/offset
- 파일 경로를 적어놓으면 sql light db 파일이 생성되며, fluentd가 마지막으로 파일을 읽은 offset이 기록된다.
- 그렇기 때문에 fluentd가 죽었다 살아나도 이어서 log를 가져와서 필요한 기능을 수행할 수 있다.
- 대신 필요한설정이 있는데, fluentd는 Daemonset으로 각 노드마다 실행되는것으로 VoumeMount를 해서 file에 쓸수 있게 해야한다.
- VolumMount시 HostPath를 사용하여, 각 노드의 고정된 path를 사용해야 한다.
- Daemonset의 경우 NFS나 pvc, pv를 이용하는 방법은 일이 번잡하다.
- NFS사용시 각 Daemonset에 NFS 경로를 다르게 해야하는데...귀찮음
- PVC,PV사용시 노드가 추가 되거나하면 pvc, pv를 추가 해야함