This project is referenced by a series of articles about Developing and Deploying Kubernetes Applications on a Raspberry Pi Cluster. Specifically the article titled Kubernetes Application Monitoring on a Raspberry Pi Cluster. This repository contains a Docker file and associated supporting files to create a Docker image which contains a version of Fluentd that will run on an ARMv7 host. This image also includes the necessary Ruby Gem files to enable Fluentd to push logs to Elasticsearch. This repo was specifically developed (or hacked as it turns out) to be able to run Fluentd on a Raspberry Pi cluster. The files in this repo come from a variety of sources as follows:
Dockerfile
,entrypoint.sh
, andfluent.conf
- These files were copied from fluentd-docker-image GitHub respository. Specifically from thev1.9/armhf/debian
directory. All 3 were modified as will be described below.fluentd-daemonset.yaml
- This file was copied from mjhea0/efk-kuberentes repo.
Dockerfile
- I added thegem install
commands needed to install the Ruby Gems required to enable Elasticsearch support. I used the fluent/fluentd-kubernetes-daemonset as the reference for the required Ruby Gems. The Gemfile contained the required information.entrypoint.sh
- This file is defined as theENTRYPOINT
for the Docker image. I added a block of code to define theSIMPLE_SNIFFER
environment variable. This is also needed for Elasticsearch support.fluent.conf
- I added severalmatch
blocks per web resources referenced in the file.fluentd-daemonset.yaml
- I updated this file's containerimage:
to reference the Docker image resulting from the previous 3 files. I also modified it to point to a specific Elasticsearch instance and resource limits.
There is a supporting Docker Hub repo containing a Docker image created from these files. It can be found at roungkin/fluentd-kube-daemonset.