Code Monkey home page Code Monkey logo

arktos's Introduction

Arktos

Go Report Card LICENSE

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.

Architecture

Architecture Diagram

Key Features

Large Scalability

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 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.

More Features

There are more features under development, such as cloud-edge scheduling, in-place vertical scaling, etc. Check out the project introduction for more information.

Build Arktos

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.13 environment. Go 1.14 and above is not supported yet.
mkdir -p $GOPATH/src/github.com
cd $GOPATH/src/github.com
git clone https://github.com/CentaurusInfra/arktos
cd arktos
make

Run Arktos

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

To setup a multi-node cluster, please refer to Arktos Cluster Setup Guide. And this guide gives detailed instructions if you want to enable partitions in the cluster.

Community Meetings

Pacific Time: Tuesday, 6:00PM PST (Weekly)

Resources: Meeting Link | Meeting Summary

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.

To ask a question, here is the invitation to join Arktos slack channels. You can also post in the email group, or create an issue of question type in the repo.

arktos's People

Contributors

chenqianfzh avatar sindica avatar dingyin avatar jshaofuturewei avatar pdgetrf avatar vinaykul avatar sonyafenge avatar hong-chang avatar zmn223 avatar penggu avatar zongbaoliu avatar clu2xlu avatar quinton-hoole avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.