What is Arktos
Arktos is an open source project designed for large scale cloud compute infrastructure. It is evolved from the open source project Kubernetes codebase with core design changes.
Arktos aims to be an open source solution to address key challenges of large-scale clouds, including system scalability, resource efficiency, multitenancy, edge computing, and the native support for the fast-growing modern workloads such as containers and serverless functions.
Arktos achieves a scalable architecture by partitioning and scaling out components, including API Server, storage, controllers and data plane. The eventual goal of Arktos is to support 300K nodes with a single regional control plane.
Arktos implements a hard multitenancy model to meet the strict isolation requirement highly desired by public cloud environment. It's based on the virtual cluster idea and all isolations are transparent to tenants. Each tenant feels it's a dedicated cluster for them.
Unified Container/VM Orchestration
In addition to container orchestration, Arktos implements a built-in support for VMs. In Arktos a pod can contain either containers or a VM. They are scheduled the same way in a same resource pool. This enables cloud providers use a single converged stack to manage all cloud hosts.
There are more features under development, such as cloud-edge scheduling, in-place vertical scaling, etc. Check out the project introduction for more information.
Arktos requires a few dependencies to build and run, and a bash script is provided to install them.
After the prerequisites are installed, you just need to clone the repo and run "make":
Note: you need to have a working Go 1.12 environment. Go 1.13 is not supported yet.
mkdir -p $GOPATH/src/github.com cd $GOPATH/src/github.com git clone https://github.com/futurewei-cloud/arktos cd arktos make
The easiest way to run Arktos is to bring up a single-node cluster in your local development box:
cd $GOPATH/src/github.com/arktos hack/arktos-up.sh
After the Arktos cluster is up, you can access the cluster with Kubectl tool just like what you do with a Kubernetes cluster. For example:
cd $GOPATH/src/github.com/arktos cluster/kubectl.sh get nodes
Documents and Support
The design document folder contains the detailed design of already implemented features, and also some thoughts for planned features.
The user guide folder provides information about these features from users' perspective.
To report a problem, please create an issue in the project repo.