빈자의 GKE/FluentBit에서 로그 수집
TLDR
지금까지의 개요
GCP의 무료 테두리만으로 GKE 클러스터를 만들 수 있었지만, 일부 Pod가 Pending이 되어 있었다.
ぃ tp // 이 m/아 pstun db/있어 ms/788f705에71에7660967아6#%에3%83%아%에3%82%BD%에3%83%BC%에3%82%B9
조사해 보면, 최대의 Pod 는 Stackdriver Logging 에의 각 컨테이너의 로그 수집을 위해서 생성되고 있는
fluentd-cloud-logging
이며, 실측 80 MB 를 넘는 자원을 사용하고 있었다.ぃ tp // 이 m/아 pst db/있어 ms/1c3f8에아 026에 d6b27에 357 #%에 5% 86% 85%에 8% 아 8% B3
빈자의 로그 수집
fluentd-cloud-logging
는 클러스터 생성시 --no-enable-cloud-logging
를 지정하여 무효화 할 수 있지만 12factor 로그을 처리 할 수없는 것은 매우 불편합니다. 무언가 대안을 생각할 필요가 있다.fluent-bit
거기서 이번 눈을 끈 것이 C로 쓰여진 경량의 로그 수집 에이전트의 fluent-bit이다.
Kubernetes 대응 또한 Ruby에서 움직이는 fluentd보다 자원이 적을 것으로 예상됩니다.
실제 Kubernetes 연계의 예를 찾아보면, DaemonSet 로서 동작해 Elasticsearch 에 출력하는 예도 공식적으로 fluent/fluent-bit-kubernetes-daemonset 로서 발견되었다.
Elasticsearch는 JVM에서 작동하고 부자 자원을 요구하기 때문에 가난한 사람들에게는 손이 닿지 않지만 이것이 가능하다면 하고 싶은 일은 대략 할 수 있을 것 같다.
플러그인을 쓰는 방법을 찾았는데 Go에서 플러그인을 작성할 수 있다는 것을 알았습니다.
htps : // 기주 b. 이 m/fぅ엔 t/fぅ엔 t-비 t/bぉb/마s테 r/고 G_오우 T푸 T_P㎅긴. md
htps : // 기주 b. 코 m / f ㅅ t / f ぅ 헉
Go에는 Google 공식 Stackdriver Logging 클라이언트 라이브러리이 있기 때문에 Stackdriver Logging에 출력하는 fluent-bit을 Kubernetes 로그 수집에 사용할 수 있습니까?
fluent-bit-stackdriver
라는 이유로 검증해 본 것이 아래 리포지토리이다.
apstndb/fluent-bit-stackdriver
아직 다른 사람이 사용할 수 있도록 정비하고 있지 않고, 품질도 낮지만, 실제로 Kubernetes의 각 Pod가 출력하는 로그가 Stackdriver Logging에 건너는 것을 확인할 수 있다.
아직 리소스 사용량을 살펴보면 아래와 같이 10MB 정도의 메모리 사용량이 되었다.
$ kubectl top pod --all-namespaces
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default hostnames-3799501552-99h7f 0m 0Mi
kube-system heapster-v1.2.0.1-1382115970-gjg66 0m 24Mi
kube-system fluent-bit-kgjzl 0m 10Mi
kube-system kubernetes-dashboard-3543765157-s86rn 0m 16Mi
kube-system kube-proxy-gke-sandbox-cluster-default-pool-8b3dece3-ngf9 0m 12Mi
kube-system kube-dns-2185667875-75kdg 0m 16Mi
이전에 측정 한 fluentd보다 70MB 정도는 줄일 수 있습니다. 그렇다면 600MB 밖에 RAM이 없는 f1-micro 인스턴스에서의 로그 수집이 현실적인 것이 되어 온 것이 아닌가.
Reference
이 문제에 관하여(빈자의 GKE/FluentBit에서 로그 수집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/apstndb/items/78482a26b13b10eded0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)