Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-design how Fluentd should be deployed as a Daemonset #43

Open
edsiper opened this issue Jul 12, 2017 · 1 comment
Open

Re-design how Fluentd should be deployed as a Daemonset #43

edsiper opened this issue Jul 12, 2017 · 1 comment

Comments

@edsiper
Copy link
Member

edsiper commented Jul 12, 2017

Current structure of this suggested way to deploy Fluentd as a daemonset is generating some complications to maintain different based distro, plugins and different setups.

Taking in count @chancez suggestions, I think this could work as:

  • One debian base image:
    • Deprecate Alpine because of: cannot work with systemd, hard to maintain with Jemalloc enabled (required to reduce memory usage because of high glibc memory fragmentation).
    • Debian image by Google (gcr.io/google-containers/debian-base-amd64:0.1) is really secure,
  • Use ConfigMaps instead of configuration files inside the images
  • Similar documentation to the one existing by CoreOS/Tectonic: Logging

Please share your thoughts and ideas.

@chancez
Copy link
Contributor

chancez commented Jul 12, 2017

One of the biggest pain points is plugins. I'd like to experiment with a few ideas, when I find some more time, but I'll put them here so others can feel free to try it if they like:

  1. Create a base image with most plugins people might need, not including most outputs (install fluent-plugin-rewrite-tag-filter, fluent-plugin-prometheus, fluent-plugin-kubernetes_metadata_filter, fluent-plugin-rewrite-tag-filter, the forwarder plugins, maybe a few more).
  2. Creating an image based on the base image with most output plugins pre-installed. This image will be necessarily larger, but it will be an "all-in-one" for most people.
  3. Creating an image based on the base image which can dynamically install plugin gems based on a list of gems in an environment variable, at startup.

I'm not a huge fan of option 3, but I am curious to see how well it works in practice since the pods only need to install the gems the first time they're started, restarts wouldn't need to re-download the gem, only if the pod is re-created does it need to re-download, so this may work for some use cases.

By building a base image containing everything except output plugins specific to usage with Kubernetes, it's really easy to extend the image with your own modifications, for your specific logging destination, and if you don't care about the size as much, the all-in-one image would have most output plugins people need already installed.

errm added a commit to errm/fluentd-kubernetes-daemonset that referenced this issue Mar 19, 2018
* Makes builds more deterministic
* Avoids issues with plugin incompatibility with fluentd version
* Vulnerability scanning from github
* ~ moves a little closer to solving fluent#43 perhaps
* Fixes fluent#27
errm added a commit to errm/fluentd-kubernetes-daemonset that referenced this issue Mar 19, 2018
* Makes builds more deterministic
* Avoids issues with plugin incompatibility with fluentd version
* Vulnerability scanning from github
* ~ moves a little closer to solving fluent#43 perhaps
* Fixes fluent#27
errm added a commit to errm/fluentd-kubernetes-daemonset that referenced this issue Mar 19, 2018
* Makes builds more deterministic
* Avoids issues with plugin incompatibility with fluentd version
* Vulnerability scanning from github
* ~ moves a little closer to solving fluent#43 perhaps
* Fixes fluent#27
errm added a commit to errm/fluentd-kubernetes-daemonset that referenced this issue Apr 4, 2018
* Makes builds more deterministic
* Avoids issues with plugin incompatibility with fluentd version
* Vulnerability scanning from github
* ~ moves a little closer to solving fluent#43 perhaps
* Fixes fluent#27
errm added a commit to errm/fluentd-kubernetes-daemonset that referenced this issue Apr 4, 2018
* Makes builds more deterministic
* Avoids issues with plugin incompatibility with fluentd version
* Vulnerability scanning from github
* ~ moves a little closer to solving fluent#43 perhaps
* Fixes fluent#27

Signed-off-by: Ed Robinson <edward-robinson@cookpad.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants