WARNING: Bitnami Kubernetes Production Runtime is no longer actively maintained by VMware.
VMware has made the difficult decision to stop driving this project and therefore we will no longer actively respond to issues or pull requests. If you would like to take over maintaining this project independently from VMware, please let us know so we can add a link to your forked project here.
Thank You.
Description
The Bitnami Kubernetes Production Runtime (BKPR) is a collection of services that makes it easy to run production workloads in Kubernetes.
Think of Bitnami Kubernetes Production Runtime as a curated collection of the services you would need to deploy on top of your Kubernetes cluster to enable logging, monitoring, certificate management, automatic discovery of Kubernetes resources via public DNS servers and other common infrastructure needs.
BKPR is available for Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS) and Amazon Elastic Container Service for Kubernetes (Amazon EKS) clusters.
License
BKPR is licensed under the Apache License Version 2.0.
Requirements
BKPR has been tested to work on a bare-minimum Kubernetes cluster with three kubelet nodes with 2 CPUs and 8GiB of RAM each.
Kubernetes version support matrix
The following matrix shows which Kubernetes versions and platforms are supported:
BKPR release | AKS versions | GKE versions | EKS versions |
---|---|---|---|
1.3 (deprecated) |
1.11 -1.12 |
1.11 -1.12 |
1.11 |
1.4 (deprecated) |
1.14 -1.15 |
1.14 -1.15 |
1.14 |
1.5 (deprecated) |
1.14 -1.15 |
1.14 -1.15 |
1.14 -1.15 |
1.6 (deprecated) |
1.15 -1.16 |
1.15 -1.16 |
1.15 -1.16 |
1.7 |
1.16 -1.17 |
1.16 -1.17 |
1.16 -1.17 |
1.8 (current) |
1.17 -1.18 |
1.17 -1.18 |
1.17 -1.18 |
1.9 (planned) |
1.18 |
1.18 -1.19 |
1.18 -1.19 |
Note that the (experimental) generic
platform is e2e tested on GKE.
Quickstart
Please use the installation guide to install the kubeprod
binary before installing BKPR to your cluster.
Frequently Asked Questions (FAQ)
See the separate FAQ and roadmap documents.
Versioning
The versioning used in BKPR is described here.
Components
BKPR leverages the following components to achieve its mission. For more in-depth documentation about them please read the components documentation.
Logging stack
- Elasticsearch: A distributed, RESTful search and analytics engine
- Fluentd: A data collector for unified logging layer
- Kibana: A visualization tool for Elasticsearch data
Monitoring stack
- Prometheus: A monitoring system and time series database
- Alertmanager: An alert manager and router
- Grafana: An open source metric analytics & visualization suite
Ingress stack
- NGINX Ingress Controller: A Controller to satisfy requests for Ingress objects
- cert-manager: A Kubernetes add-on to automate the management and issuance of TLS certificates from various sources
- OAuth2 Proxy: A reverse proxy and static file server that provides authentication using Providers (Google, GitHub, and others) to validate accounts by email, domain or group
- ExternalDNS: A component to synchronize exposed Kubernetes Services and Ingresses with DNS providers
Release compatibility
Components version support
The following matrix shows which versions of each component are used and supported in the most recent releases of BKPR:
Component | BKPR 1.6 | BKPR 1.7 | BKPR 1.8 |
---|---|---|---|
Alertmanager | 0.21.x |
0.21.x |
0.21.x |
cert-manager | 0.14.x |
0.16.x |
0.16.x |
configmap-reload | 0.3.x |
0.5.x |
0.5.x |
Elasticsearch | 7.8.x |
7.12.x |
7.12.x |
Elasticsearch Curator | 5.8.x |
5.8.x |
5.8.x |
Elasticsearch Exporter | 1.1.x |
1.1.x |
1.1.x |
ExternalDNS | 0.7.x |
0.7.x |
0.7.x |
Fluentd | 1.11.x |
1.12.x |
1.12.x |
Grafana | 7.0.x |
7.5.x |
7.5.x |
Kibana | 7.8.x |
7.12.x |
7.12.x |
kube-state-metrics | 1.9.x |
1.9.x |
1.9.x |
Node exporter | 1.0.x |
1.1.x |
1.1.x |
NGINX Ingress Controller | 0.33.x |
0.34.x |
0.34.x |
oauth2_proxy | 5.1.x |
6.0.x |
6.0.x |
Prometheus | 2.19.x |
2.26.x |
2.26.x |
Note BKPR 1.8 is a catch up release. Patch versions might be updated, but no ther significant changes have been applied. This was done to enable ourselves to catch up with the latest Kubernetes releases for subsequent BKPR releases.
Contributing
If you would like to become an active contributor to this project please follow the instructions provided in contribution guidelines.