반응형
EKS에서 fluentbit를 sidecar로 띄울때와 daemonset으로 띄울때의 설정을 다르게 줘야한다.
sidecar는 pod name을 바로 가져올 수 있지만, daemonset 은 기본적으로 노드 이름을 가져와서 설정을 따로 더 해줘야한다.
[sidecar] fluentbit-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentbit-config
namespace: ns-app
data:
fluent-bit.conf: |
[SERVICE]
Flush 1
Grace 30
Log_Level trace
Daemon off
[INPUT]
Name tail
Log_Level trace
Path /app.log
Tag ${POD_NAME}
Skip_Long_Lines Off
Refresh_Interval 10
Read_from_Head True
DB /app.db
[OUTPUT]
Name cloudwatch_logs
Match *
region ap-northeast-2
log_group_name /app
log_stream_prefix log-
auto_create_group true
log_key log
[FILTER]
Name aws
Match ${POD_NAME}
imds_version v1
[daemonset] fluentbit-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentbit-config
namespace: ns-app
data:
fluent-bit.conf: |
[SERVICE]
Flush 1
Grace 30
Log_Level trace
Daemon off
[INPUT]
Name tail
Log_Level trace
Path /app.log
Tag *
Skip_Long_Lines Off
Refresh_Interval 10
Read_from_Head True
DB /app.db
[OUTPUT]
Name cloudwatch_logs
Match *
region ap-northeast-2
log_group_name /app
log_stream_name ${kubernetes['pod_name']}
log_stream_prefix log-
auto_create_group true
log_key log
[FILTER]
Name aws
Match *
imds_version v1
[FILTER]
Name kubernetes
Match *
Kube_URL https://kubernetes.default.svc:443
deployment는 sidecar나 daemonset이나 차이가 없다.
단, 볼륨 설정은 sidecar는 emptydir 로, daemonset은 hostpath 로 해야한다.
- DaemonSet: 노드 로그를 수집하려면 Pod가 호스트 파일 시스템에 접근해야 하므로 hostpath 를 사용해야 함(emptydir 불가)
- Sidecar: Pod 내부 로그를 수집하기 때문에 emptydir을 공유해서 로그를 전달
+ ${kubernetes['pod_name']} 으로 pod 이름을 가져오려면 RBAC 설정을 해야하는것 같다. 권한이 없어서 임시로 로그 이름에 pod 이름이 아예 추가가 되도록 설정하고, 로그파일 이름을 로그스트림 이름으로 가져가도록 했다. Daemonset 설정에서 어떤게 불필요한 코드인지 검증해보고 싶은데 기회가 되면 다시 수정할 예정이다.
host_name=$(hostname -f)
logfile="/logs/${host_name}-$(date +'%Y%m%d%H').log"
반응형
'MSA > 쿠버네티스' 카테고리의 다른 글
| AWS Domain과 EKS Service DNS 간의 요청 응답 속도 비교 (0) | 2025.12.11 |
|---|---|
| [Kubernetes] RBAC 설정 (0) | 2025.12.05 |
| [Kubernetes] HPA 설정 커스터마이징(hpa behavior) (1) | 2025.08.07 |
| [Kubernetes] zookeeper 역할 확인 (0) | 2025.07.21 |
| [Kubernetes] docker hub에 이미지 안올리고 로컬 이미지 사용하는 방법 (0) | 2025.04.25 |