From d9333c813c96477e18df5196572e897189c71218 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Tue, 25 Apr 2017 16:40:26 -0600 Subject: [PATCH] Kubernetes: new section Signed-off-by: Eduardo Silva --- SUMMARY.md | 1 + imgs/flb_kubernetes.png | Bin 0 -> 25852 bytes kubernetes/README.md | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 imgs/flb_kubernetes.png create mode 100644 kubernetes/README.md diff --git a/SUMMARY.md b/SUMMARY.md index 8debd79222c..2530957e247 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -60,6 +60,7 @@ * [NATS](output/nats.md) * [Standard Output](output/stdout.md) * [Treasure Data](output/td.md) +* [Kubernetes](kubernetes/README.md) * [Fluent Bit for Developers](development/README.md) * [Library API](development/library_api.md) * [Ingest Records Manually](development/ingest_records_manually.md) diff --git a/imgs/flb_kubernetes.png b/imgs/flb_kubernetes.png new file mode 100644 index 0000000000000000000000000000000000000000..368a5a9fb466ec2aa5ce6ee92b41a742bd5a9b7c GIT binary patch literal 25852 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 literal 0 HcmV?d00001 diff --git a/kubernetes/README.md b/kubernetes/README.md new file mode 100644 index 00000000000..d444b46f080 --- /dev/null +++ b/kubernetes/README.md @@ -0,0 +1,38 @@ +# Kubernetes + +![](/imgs/flb_kubernetes.png) + +Fluent Bit as a log forwarder is a perfect fit for Kubernetes use case. The following document describes how to deploy Fluent Bit for your log collection needs. + +## Concepts + +Before to get started is important to understand how Fluent Bit will be deployed. Kubernetes manage a cluster of _nodes_, so our log agent tool will need to run on every node to collect logs from every _POD_, for hence Fluent Bit is deployed as a DaemonSet (a POD that runs on every _node_ of the cluster). + +When Fluent Bit runs, it will read, parse and filter the logs of every POD and will enrich each entry with the following information (metadata): + +- POD Name +- POD ID +- Container Name +- Container ID +- Labels +- Annotations + +To obtain these information, a built-in filter plugin called _kubernetes_ talks to the Kubernetes API Server to retrieve relevant information such as the _pod\_id_, _labels_ and _annotations_, other fields such as _pod\_name_, _container\_id_ and _container\_name_ are retrieved locally from the log file names. All of this is handled automatically, no intervention is required from a configuration aspect. + +> Our Kubernetes Filter plugin is fully inspired on the [Fluentd Kubernetes Metadata Filter](https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter) written by [Jimmi Dyson](https://github.com/jimmidyson). + +## Getting Started + +The following steps assumes that you have a Kubernetes cluster running with an Elasticsearch database on it. Our default configuration assumes that your database can be reached through the DNS name _elasticsearch-logging_. + +Please download the Fluent Bit DaemonSet for Elasticsearch from here: + +- [fluent-bit-daemonset-elasticsearch.yaml](https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-daemonset/master/fluent-bit-daemonset-elasticsearch.yaml) + +Now your master node deploy the daemonset with: + +``` +$ kubectl apply -f ./fluent-bit-daemonset-elasticsearch.yaml +``` + +After a few seconds Fluent Bit will be running and ingesting your logs into your Elasticsearch database. If you database have a different DNS name than _elasticsearch-logging_, make sure to perform the proper adjustments to the Yaml file.