Giter VIP home page Giter VIP logo

volcano's Introduction

volcano-logo


Build Status Go Report Card RepoSize Release LICENSE FOSSA Status CII Best Practices

Volcano is a batch system built on Kubernetes. It provides a suite of mechanisms currently missing from Kubernetes that are commonly required by many classes of batch & elastic workload including:

  1. machine learning/deep learning,
  2. bioinformatics/genomics
  3. other "big data" applications.

These types of applications typically run on generalized domain frameworks like TensorFlow, Spark, PyTorch, MPI, etc, which Volcano integrates with.

Some examples of the mechanisms and features that Volcano adds to Kubernetes are:

  1. Job management extensions and improvements, e.g:
    1. Multi-pod jobs
    2. Lifecycle management extensions including suspend/resume and restart.
    3. Improved error handling
    4. Indexed jobs
    5. Task dependencies
  2. Scheduling extensions, e.g:
    1. Co-scheduling
    2. Fair-share scheduling
    3. Queue scheduling
    4. Preemption and reclaims
    5. Reservations and backfills
    6. Topology-based scheduling
  3. Runtime extensions, e.g:
    1. Support for specialized container runtimes like Singularity, with GPU accelerator extensions and enhanced security features.
  4. Other
    1. Data locality awareness and intelligent scheduling
    2. Optimizations for data throughput, round-trip latency, etc.

Volcano builds upon a decade and a half of experience running a wide variety of high performance workloads at scale using several systems and platforms, combined with best-of-breed ideas and practices from the open source community.

NOTE: the scheduler is built based on kube-batch; refer to #241 and #288 for more detail.

Overall Architecture

volcano

Talks

You can watch industry experts talking about Volcano in different International Conferences over here.

Quick Start Guide

Prerequisites

  • Kubernetes 1.12+ with CRD support

You can try volcano by one the following two ways.

Install with YAML files

Install volcano on a existing Kubernetes cluster.

kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yaml

Enjoy! Volcano will create the following resources in volcano-system namespace.

NAME                                       READY   STATUS      RESTARTS   AGE
pod/volcano-admission-5bd5756f79-dnr4l     1/1     Running     0          96s
pod/volcano-admission-init-4hjpx           0/1     Completed   0          96s
pod/volcano-controllers-687948d9c8-nw4b4   1/1     Running     0          96s
pod/volcano-scheduler-94998fc64-4z8kh      1/1     Running     0          96s

NAME                                TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/volcano-admission-service   ClusterIP   10.98.152.108   <none>        443/TCP   96s

NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/volcano-admission     1/1     1            1           96s
deployment.apps/volcano-controllers   1/1     1            1           96s
deployment.apps/volcano-scheduler     1/1     1            1           96s

NAME                                             DESIRED   CURRENT   READY   AGE
replicaset.apps/volcano-admission-5bd5756f79     1         1         1       96s
replicaset.apps/volcano-controllers-687948d9c8   1         1         1       96s
replicaset.apps/volcano-scheduler-94998fc64      1         1         1       96s

NAME                               COMPLETIONS   DURATION   AGE
job.batch/volcano-admission-init   1/1           48s        96s

Install from code

If you have no kubernetes cluster, try one click install from code base:

./hack/local-up-volcano.sh

Community, discussion, contribution, and support

You can reach the maintainers of this project at:

Slack Channel : https://volcano-sh.slack.com. (Signup here)

Mailing List : https://groups.google.com/forum/#!forum/volcano-sh

volcano's People

Contributors

k82cn avatar tommylike avatar k8s-ci-robot avatar volcano-sh-bot avatar hzxuzhonghu avatar thandayuthapani avatar lminzhw avatar asifdxtreme avatar wangyuqing4 avatar hex108 avatar haozi23 avatar dmatch01 avatar wackxu avatar adam-marek avatar jeffwan avatar kevin-wangzefeng avatar william-wang avatar shivramsrivastava avatar jinzhejz avatar gaocegege avatar nikita15p avatar animeshsingh avatar mitake avatar jiaxuanzhou avatar sivanzcw avatar dingtsh1 avatar chenyangxuehdu avatar tizhou86 avatar chanyilin avatar scostache avatar

Watchers

James Cloos avatar  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.