Skip to content

Commit

Permalink
Update README document to include architecture diagram and update pro…
Browse files Browse the repository at this point in the history
…ject description (CentaurusInfra#530)

* Update project description in the README document.
Add the overall architecture diagram.

* Fix the link format issue.

* Update docs/README as well for the readthedocs

Co-authored-by: Xioning Ding <[email protected]>
  • Loading branch information
Xiaoning Ding and Xioning Ding authored Jul 31, 2020
1 parent 3c1fe86 commit 269dfa0
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 41 deletions.
39 changes: 16 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,38 @@
[![LICENSE](https://img.shields.io/badge/license-apache%202.0-green)](https://github.com/futurewei-cloud/arktos/blob/master/LICENSE)


## What Arktos is
## What is Arktos

Arktos is an open source cluster management system designed for large scale clouds. It is evolved from the open source [Kubernetes](https://github.com/kubernetes/kubernetesh) v1.15 codebase with some fundamental improvements.
Arktos is an open source project designed for large scale cloud compute infrastructure. It is evolved from the open source project [Kubernetes](https://github.com/kubernetes/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, cross-AZ resiliency, and the native support for the fast-growing modern workloads such as containers and serverless functions.

----

## Key Features of Arktos
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.

## Architecture
![](https://github.com/futurewei-cloud/arktos/tree/master/docs/design-proposals/arch/project_architecture.png)
## Key Features

### Large Scalability

Arktos achieves a scalable architecture by partitioning and replicating system components, including API Server, storage, controllers and data plane. The eventual goal of Arktos is to support 100K nodes with a single cross-AZ control plane.
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.

### Multitenancy

Arktos implements a hard multi-tenancy model to meet the strict isolation requirement highly desired by a typical public cloud environment. Tenant is a built-in object in the system, and some flexible multi-tenancy models can also be supported with customized resource authorization rules.

### Native VM Support
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.

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 and launched by node agent using different runtime servers. VMs and containers are both the first-class citizens in Arktos.
### 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.

### More Planned Features
### More Features

More features are planned but not started yet, including intelligent scheduling, in-place resource update, QoS enforcement, etc.
There are more features under development, such as cloud-edge scheduling, in-place vertical scaling, etc. Check out [the project introduction](https://docs.google.com/presentation/d/1PG1m27MYRh4kuq654W9HvdoZ5QDX9tWxoCMCfeOZUrE/edit#slide=id.g8a27d34398_8_0) for more information.


## Build Arktos

Arktos requires a few dependencies to build and run, and [a bash script](https://github.com/futurewei-cloud/arktos/tree/master/hack/setup-dev-node.sh) is provided to install them.

To build Arktos, you just need to clone the repo and run "make":
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](https://golang.org/doc/install). Go 1.13 is not supported yet.

Expand All @@ -51,9 +50,7 @@ make
```

## Run Arktos
Arktos requires a few dependencies to run, and [a bash script](hack/setup-dev-node.sh) is provided to install them.

With the dependencies in place, to run a single-node Arktos cluster in your local development box:
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
Expand All @@ -67,11 +64,7 @@ cd $GOPATH/src/github.com/arktos
cluster/kubectl.sh get nodes
```

For more complicated cluster setups, please refer to [Arktos Cluster Setup Guide](https://github.com/futurewei-cloud/arktos/blob/master/docs/setup-guide/multi-node-dev-cluster.md).

## Setup Data Partitioned Arktos Environment

[Data Partitioned Arktos Environment Setting Up Guide](docs/setup-guide/arktos-apiserver-partition.md) gives detailed instruction on how to set up Arktos cluster with data partition
To setup a multi-node cluster, please refer to [Arktos Cluster Setup Guide](https://github.com/futurewei-cloud/arktos/blob/master/docs/setup-guide/multi-node-dev-cluster.md). And [this guide](docs/setup-guide/arktos-apiserver-partition.md) gives detailed instructions if you want to enable partitions in the cluster.

## Documents and Support

Expand Down
34 changes: 16 additions & 18 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,38 @@
[![LICENSE](https://img.shields.io/badge/license-apache%202.0-green)](https://github.com/futurewei-cloud/arktos/blob/master/LICENSE)


## What Arktos is
## What is Arktos

Arktos is an open source cluster management system designed for large scale clouds. It is evolved from the open source [Kubernetes](https://github.com/kubernetes/kubernetesh) v1.15 codebase with some fundamental improvements.
Arktos is an open source project designed for large scale cloud compute infrastructure. It is evolved from the open source project [Kubernetes](https://github.com/kubernetes/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, cross-AZ resiliency, and the native support for the fast-growing modern workloads such as containers and serverless functions.

----

## Key Features of Arktos
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.

## Architecture
![](https://github.com/futurewei-cloud/arktos/tree/master/docs/design-proposals/arch/project_architecture.png)
## Key Features

### Large Scalability

Arktos achieves a scalable architecture by partitioning and replicating system components, including API Server, storage, controllers and data plane. The eventual goal of Arktos is to support 100K nodes with a single cross-AZ control plane.
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.

### Multitenancy

Arktos implements a hard multi-tenancy model to meet the strict isolation requirement highly desired by a typical public cloud environment. Tenant is a built-in object in the system, and some flexible multi-tenancy models can also be supported with customized resource authorization rules.
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.

### Native VM Support
### 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 and launched by node agent using different runtime servers. VMs and containers are both the first-class citizens in Arktos.
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.

### More Features

### More Planned Features

More features are planned but not started yet, including intelligent scheduling, in-place resource update, QoS enforcement, etc.
There are more features under development, such as cloud-edge scheduling, in-place vertical scaling, etc. Check out [the project introduction](https://docs.google.com/presentation/d/1PG1m27MYRh4kuq654W9HvdoZ5QDX9tWxoCMCfeOZUrE/edit#slide=id.g8a27d34398_8_0) for more information.


## Build Arktos

Arktos requires a few dependencies to build and run, and [a bash script](https://github.com/futurewei-cloud/arktos/tree/master/hack/setup-dev-node.sh) is provided to install them.

To build Arktos, you just need to clone the repo and run "make":
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](https://golang.org/doc/install). Go 1.13 is not supported yet.

Expand All @@ -51,8 +50,7 @@ make
```

## Run Arktos

To run a single-node Arktos cluster in your local development box:
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
Expand All @@ -66,7 +64,7 @@ cd $GOPATH/src/github.com/arktos
cluster/kubectl.sh get nodes
```

For more complicated cluster setups, please refer to [Arktos Cluster Setup Guide](https://github.com/futurewei-cloud/arktos/blob/master/docs/setup-guide/multi-node-dev-cluster.md).
To setup a multi-node cluster, please refer to [Arktos Cluster Setup Guide](https://github.com/futurewei-cloud/arktos/blob/master/docs/setup-guide/multi-node-dev-cluster.md). And [this guide](docs/setup-guide/arktos-apiserver-partition.md) gives detailed instructions if you want to enable partitions in the cluster.

## Documents and Support

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 269dfa0

Please sign in to comment.