Kubernetes and plugins

We are still missing some documentation around that specific for Kibana. But in general the two methods outlined in the section about Elasticsearch plugins apply here as well https://www.elastic.co/guide/en/cloud-on-k8s/0.9/k8s-bundles-plugins.html

You can either use an init container to install the desired plugins (once) at runtime. This has a few downsides though:

  • it will slow down Kibana's startup time significantly on the first run. Not only because the plugin needs to be downloaded and installed but also because Kibana runs an optimization script after the plugin has been added. You will have to adjust the readiness probe to account for the startup delay
  • it will make Kibana susceptible to failures due to the download location for the plugin not being reachable (temporarily) or similar disruptions
  • the optimize script that runs after plugin installation might change the resource requirments for your Kibana so you may have to give it more memory to be able to complete the optimization run

The alternative is to build a custom docker image based on the official distribution with the plugins you want to use pre-installed (and pre-optimized)

Related Custom Kibana Image readiness woes