/fury-distribution

Kubernetes Fury Distribution (Core Modules) - A battle-tested open-source Kubernetes distribution

Primary LanguageSmartyBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause


Kubernetes Fury Distribution

Kubernetes Fury Distribution (KFD) is a certified battle-tested Kubernetes distribution based purely on upstream Kubernetes.

Build Status Release Slack License

Overview

Kubernetes Fury Distribution (KFD) is a CNCF certified battle-tested Kubernetes distribution based purely on upstream Kubernetes.

It is developed and maintained by SIGHUP and the community, and it is fully open source.

🎯 The goal of Fury is to turn any standard Kubernetes cluster into a fully-configured production-grade cluster.

Un-distribution model 🧬

KFD uses an un-distribution model. This means that we:

  • Rely only on open source solutions.
  • Are free from vendor lock-in.
  • Stay close to upstream Kubernetes and the cloud native landscape.
  • Choose, configure and integrate a set of battle-tested open source tools.

Architecture 🏗

Kubernetes Fury Distribution is structured on modules, and each module has a set of packages.

  • A package is a single unit of functionality.
  • A module groups packages that are functionally related together.

All modules are open source, widely used, easily customizable, and pre-configured with sane defaults and tested to work well together.

The standard way to deploy KFD is to:

See the getting started section below for more information.

Recommended Hardware Requirements

KFD is a modular and composable system, so hardware requirements ultimately depend on the modules and configuration chosen. Having said that, for a production-grade cluster a good starting point would be:

A KFD production grade cluster will be composed of 3 node pools:

  • Control Plane: 3 nodes in HA.
  • Infrastructure: 3 nodes dedicated to running the infrastructural components of KFD (monitoring, logging, policy enforcement, etc., i.e. the modules).
  • Workers: where the application workload will run. This is up to you.
  • Load Balancers (optional): for on-premises installations, 2 load balancers in HA can be deployed to forward traffic to the control plane and the ingress controllers running in the infrastructure nodes.

Nodes sizing

Node Role CPU (cores) RAM (GB) Disk (GB) Qty.
Control Plane 2 8 50 3
Infrastructure 4 16 50 3
Load Balancer 2 2 50 2

Storage

Some modules rely on persistent storage via PersistentVolumeClaims, by default (but configurable) the following capacity will be used:

Description Size (GB)
Prometheus (metrics storage) 150
MinIO Monitoring (metrics storage, 20GBx6) 120
MinIO Logging (logs storage, 20GBx6) 120
OpenSearch (logs storage) 30
MinIO Tracing (traces storage) 120
Total 540

Core Modules 📦

Core modules provide essential functionality to the distribution for production-grade clusters.

Module Included Release Description
Networking Version Networking functionality via Calico or Cilium CNIs
Ingress Version Fast and reliable Ingress Controller and TLS certificate management
Logging Version A centralized logging solution based on the LoggingOperator + OpenSearch or Loki stacks
Monitoring Version Monitoring and alerting functionality based on Prometheus, AlertManager and Grafana
Tracing Version Tracing functionality based on Tempo
Disaster Recovery Version Backup and disaster recovery solution using Velero
OPA Version Policy and Governance for your cluster using OPA Gatekeeper and Gatekeeper Policy Manager or Kyverno
Auth Version Improved auth for your Kubernetes Cluster and its applications

Add-on Modules 📦

Add-on modules provide additional functionality to the distribution. Their release cycle is independent of KFD's.

Module Description
Kong Add Kong API Gateway for Kubernetes applications via Kong Ingress Controller
Service Mesh Deploy a service mesh on top of KFD
Registry Integrate a Container Registry solution
Storage Rook (Ceph Operator) based Storage solution on Kubernetes
Kafka Apache Kafka event streaming for your Cluster

Get started with KFD 🚀

To get started with KFD, please head to the quickstart guides on the documentation site.

Issues 🐛

In case you experience any issues feel free to open a new issue.

If the problem is related to a specific module, open the issue in the module repository.

Commercial Support 🛟

If you are looking to run KFD in production and would like to learn more, SIGHUP (the company behind the Fury ecosystem) can help. Feel free to email us or check out our website.

Support & Compatibility 🪢

Current supported versions of KFD are:

KFD Version Kubernetes Version
1.29.4 1.29.x
1.28.4 1.28.x
1.27.9 1.27.x

Check the compatibility matrix for additional information about previous releases of the Distribution and the compatibility with furyctl.

Also, check the versioning documentation file to know more about the versioning scheme of the distribution and the upgrade path.

CNCF Certified 🎓

Each version of the Kubernetes Fury Distribution that introduces compatibility with a new version of Kubernetes goes through a conformance certification process with the CNCF. Certified solutions are validated to ensure a set of guarantees such as consistency, timely updates and confirmability.

KFD has been certified by the CNCF (Cloud Native Computing Foundation) as a Certified Kubernetes Distribution for all Kubernetes versions since Kubernetes 1.12. Clicking on the badge below you can see the certification process for the latest version of KFD:

KFD is CNCF Certified Kubernetes 1.29 - click to see the certification PR

Roadmap

Find the updated roadmap in the ROADMAP.md file.

Contributing 🤝

If you wish to contribute please read the Contributing Guidelines.

License

KFD is open-source software and it's released under the following LICENSE