/katalyst-core

Katalyst aims to provide a universal solution to help improve resource utilization and optimize the overall costs in the cloud. This is the core components in Katalyst system, including multiple agents and centralized components

Primary LanguageGoApache License 2.0Apache-2.0

Katalyst-core

English | 简体中文

Overview

Katalyst aims to provide a universal solution to improve resource utilization and reduce overall costs in the cloud. The main features include:

  • QoS-based Resource Model: Katalyst provides a pre-defined QoS model along with multiple enhancements to meet the QoS requirements of various workloads;
  • Elastic Resource Management: Katalyst provides both horizontal and vertical scaling implementations, along with an extensible mechanism for out-of-tree algorithms;
  • Topology-aware Scheduling and Allocation: Katalyst extends the capabilities of the native scheduler and kubelet to be aware of the NUMA and device topology when scheduling Pods and allocating resources to them, thereby improving the performance of workloads;
  • Fine-grained Resource Isolation: Katalyst provides real-time and fine-grained resource over-commitment, allocation and isolation strategies for each QoS through auto-tuned workload profiling.

Katalyst contains three main projects:

  • Katalyst-API: API definitions for the Katalyst project, including CRDs, protocols, the QoS model, and more;
  • Katalyst-Core: Katalyst core implementations;
  • Charts: Helm charts for all projects in KubeWharf;

A more detailed introduction will be presented in the future.

Prerequisites

Katalyst runs on a KubeWharf enhanced kubernetes cluster. Please refer to kubewharf-enhanced-kubernetes for detailed deployment instructions.

Deploying

Please refer to Charts for detailed helm charts. Since KubeWharf enhanced kubernetes is developed based on specific versions of upstream Kubernetes and maintains API compatibility with corresponding Kubernetes versions, if you wish to run other components (e.g. operators), please note its compatibility with the corresponding Kubernetes API version.

Getting started

Katalyst provides several example yaml to demonstrate the common use cases. For more information, please refer to tutorials.

Community

Contributing

If you are willing to be a contributor of the Katalyst project, please refer to our CONTRIBUTING document for details.

Contact

If you have any questions or wish to contribute, you are welcome to communicate via GitHub issues or pull requests. Alternatively, you may reach out to our Maintainers.

License

Katalyst is under the Apache 2.0 license. See the LICENSE file for details. Certain implementations in Katalyst rely on the existing code from Kubernetes and the credits go to the original Kubernetes authors.