commit
4b8fc51a57
123
README.md
123
README.md
|
@ -2,38 +2,28 @@
|
||||||
|
|
||||||
http://docklet.unias.org
|
http://docklet.unias.org
|
||||||
|
|
||||||
## intro
|
## Intro
|
||||||
|
|
||||||
Docklet is an operating system for mini-datacener. Its goal is to help
|
Docklet is a cloud operating system for mini-datacener. Its goal is to
|
||||||
multi-user share cluster resources effectively. Unlike the "application
|
help multi-user share cluster resources effectively. In Docklet, every
|
||||||
framework oriented" cluster manager such as Mesos and Yarn, Docklet is
|
user has their own private **virtual cluster (vcluster)**, which
|
||||||
**user oriented**. In Docklet, every user has their own private
|
consists of a number of virtual Linux container nodes distributed over
|
||||||
**virtual cluster (vcluster)**, which consists of a number of virtual
|
the physical cluster. Each vcluster is separated from others and can be
|
||||||
Linux container nodes distributed over the physical cluster. Every
|
operated like a real physical cluster. Therefore, most applications,
|
||||||
vcluster is separated from others and can be operated like a real
|
especially those requiring a cluster environment, can run in vcluster
|
||||||
physical cluster. Therefore, most applications, especially those
|
seamlessly.
|
||||||
requiring a cluster environment, can run in vcluster seamlessly.
|
|
||||||
|
|
||||||
Docklet provides a base image for creating virtual nodes. This image has
|
Users manage and use their vcluster all through web. The only client
|
||||||
pre-installed a lot of mainstream development tools and frameworks,
|
tool needed is a modern web browser supporting HTML5, like Safari,
|
||||||
including gcc/g++, openjdk, python3, R, MPI, scala, ruby, php, node.js,
|
Firefox, or Chrome. The integrated *jupyter notebook* provides a web
|
||||||
texlive, mpich2, spark,
|
**Workspace**. In the Workspace, users can code, debug, test,
|
||||||
scipy/numpy/matplotlib/pandas/sympy/scikit-learn, jupyter notebook, etc.
|
and runn their programs, even visualize the outputs online.
|
||||||
Users can get a ready vcluster with just one click within 1 second.
|
Therefore, it is ideal for data analysis and processing.
|
||||||
|
|
||||||
The users are free to install their specific software in their vcluster.
|
Docklet creates virtual nodes from a base image. Admins can
|
||||||
Docklet supports operating through **web terminal**. Users can do their
|
pre-install development tools and frameworks according to their
|
||||||
work as an administrator working on a console. The base image system is
|
interests. The users are also free to install their specific software
|
||||||
ubuntu. The recommended way of installing new software is by
|
in their vcluster.
|
||||||
**apt-get**.
|
|
||||||
|
|
||||||
The users manage and use their vcluster all through web. The only client
|
|
||||||
tool needed is a modern web browser, like safari, firefox, chrome. The
|
|
||||||
integrated *jupyter notebook* provides a web workspace. By visiting the
|
|
||||||
workspace, users can do coding, debugging and testing of their programs
|
|
||||||
online. The **python scipy** series of tools can even display graphical
|
|
||||||
pictures in the browser. Therefore, it is ideal for data analysis and
|
|
||||||
processing.
|
|
||||||
|
|
||||||
Docklet only need **one** public IP address. The vclusters are
|
Docklet only need **one** public IP address. The vclusters are
|
||||||
configured to use private IP address range, e.g., 172.16.0.0/16,
|
configured to use private IP address range, e.g., 172.16.0.0/16,
|
||||||
|
@ -47,54 +37,34 @@ The Docklet system runtime consists of four components:
|
||||||
- docklet master
|
- docklet master
|
||||||
- docklet worker
|
- docklet worker
|
||||||
|
|
||||||
## install
|
## Install
|
||||||
|
|
||||||
Currently the docklet runtime is recommend to run in Unbuntu 15.10+.
|
Currently the Docklet system is recommend to run in Unbuntu 15.10+.
|
||||||
|
|
||||||
Ensure that python3.5 is the default python3 version.
|
Ensure that python3.5 is the default python3 version.
|
||||||
|
|
||||||
Unpack the docklet tarball to a directory ( /root/docklet as an
|
Clone Docklet from github
|
||||||
example), will get
|
|
||||||
|
|
||||||
```
|
```
|
||||||
readme.md
|
git clone https://github.com/unias/docklet.git
|
||||||
prepare.sh
|
|
||||||
conf/
|
|
||||||
container.conf
|
|
||||||
docklet.conf.template
|
|
||||||
lxc-script/
|
|
||||||
bin/
|
|
||||||
docklet-master
|
|
||||||
docklet-worker
|
|
||||||
src/
|
|
||||||
httprest.py
|
|
||||||
worker.py
|
|
||||||
...
|
|
||||||
web/
|
|
||||||
web.py
|
|
||||||
doc/
|
|
||||||
tools/
|
|
||||||
update-basefs.sh
|
|
||||||
start_jupyter.sh
|
|
||||||
```
|
```
|
||||||
|
|
||||||
If it is the first time install, users should run **prepare.sh** to
|
Run **prepare.sh** from console to install depended packages and
|
||||||
install necessary packages automatically. Note it may need to run this
|
generate necessary configurations.
|
||||||
script several times to successfully install all the needed packages.
|
|
||||||
|
|
||||||
A *root* users will be created for managing the system. The password is
|
A *root* users will be created for managing the Docklet system. The
|
||||||
recorded in `FS_PREFIX/local/generated_password.txt` .
|
password is recorded in `FS_PREFIX/local/generated_password.txt` .
|
||||||
|
|
||||||
## config ##
|
## Config ##
|
||||||
|
|
||||||
The main configuration file of docklet is conf/docklet.conf. Most
|
The main configuration file of docklet is conf/docklet.conf. Most
|
||||||
default setting works for a single host environment.
|
default setting works for a single host environment.
|
||||||
|
|
||||||
First copy docklet.conf.template to get docklet.conf.
|
First copy docklet.conf.template to get docklet.conf.
|
||||||
|
|
||||||
The following settings should be taken care of:
|
Pay attention to the following settings:
|
||||||
|
|
||||||
- NETWORK_DEVICE : the network device to use.
|
- NETWORK_DEVICE : the network interface to use.
|
||||||
- ETCD : the etcd server address. For distributed muli hosts
|
- ETCD : the etcd server address. For distributed muli hosts
|
||||||
environment, it should be one of the ETCD public server address.
|
environment, it should be one of the ETCD public server address.
|
||||||
For single host environment, the default value should be OK.
|
For single host environment, the default value should be OK.
|
||||||
|
@ -111,7 +81,7 @@ The following settings should be taken care of:
|
||||||
by visiting this address. If the system is behind a firewall, then
|
by visiting this address. If the system is behind a firewall, then
|
||||||
a reverse proxy should be setup.
|
a reverse proxy should be setup.
|
||||||
|
|
||||||
## start ##
|
## Start ##
|
||||||
|
|
||||||
### distributed file system ###
|
### distributed file system ###
|
||||||
|
|
||||||
|
@ -123,8 +93,7 @@ Lets presume the file system server export filesystem as nfs
|
||||||
In each physical host to run docklet, mount **fileserver:/pub** to
|
In each physical host to run docklet, mount **fileserver:/pub** to
|
||||||
**FS_PEFIX/global** .
|
**FS_PEFIX/global** .
|
||||||
|
|
||||||
For single host environment, it need not to configure distributed
|
For single host environment, nothing to do.
|
||||||
file system.
|
|
||||||
|
|
||||||
### etcd ###
|
### etcd ###
|
||||||
|
|
||||||
|
@ -133,7 +102,7 @@ Ubuntu releases have included **etcd** in the repository, just `apt-get
|
||||||
install etcd`, and it need not to start etcd manually. For others, you
|
install etcd`, and it need not to start etcd manually. For others, you
|
||||||
should install etcd manually.
|
should install etcd manually.
|
||||||
|
|
||||||
For multi hosts distributed environment, start
|
For multi hosts distributed environment, **must** start
|
||||||
**dep/etcd-multi-nodes.sh** in each etcd server hosts. This scripts
|
**dep/etcd-multi-nodes.sh** in each etcd server hosts. This scripts
|
||||||
requires users providing the etcd server address as parameters.
|
requires users providing the etcd server address as parameters.
|
||||||
|
|
||||||
|
@ -146,27 +115,19 @@ address, e.g., 172.16.0.1. This server will be the master.
|
||||||
If it is the first time you start docklet, run `bin/docklet-master init`
|
If it is the first time you start docklet, run `bin/docklet-master init`
|
||||||
to init and start docklet master. Otherwise, run `bin/docklet-master start`,
|
to init and start docklet master. Otherwise, run `bin/docklet-master start`,
|
||||||
which will start master in recovery mode in background using
|
which will start master in recovery mode in background using
|
||||||
conf/docklet.conf. It means docklet will recover workspaces existed.
|
conf/docklet.conf.
|
||||||
|
|
||||||
This script in fact will start three daemons: the docklet master of
|
|
||||||
httprest.py, the configurable-http-proxy and the docklet web of web.py.
|
|
||||||
|
|
||||||
You can check the daemon status by running `bin/docklet-master status`
|
You can check the daemon status by running `bin/docklet-master status`
|
||||||
|
|
||||||
If the master failed to start, you could try `bin/docklet-master init`
|
|
||||||
to initialize the whole system.
|
|
||||||
|
|
||||||
More usages can be found by typing `bin/docklet-master`
|
|
||||||
|
|
||||||
The master logs are in **FS_PREFIX/local/log/docklet-master.log** and
|
The master logs are in **FS_PREFIX/local/log/docklet-master.log** and
|
||||||
**docklet-web.log**.
|
**docklet-web.log**.
|
||||||
|
|
||||||
### worker ###
|
### worker ###
|
||||||
|
|
||||||
Worker needs a basefs image to boot container.
|
Worker needs a basefs image to create containers.
|
||||||
|
|
||||||
You can create such an image with `lxc-create -n test -t download`,
|
You can create such an image with `lxc-create -n test -t download`,
|
||||||
and then copy the rootfs to **FS_PREFIX/local**, and renamed `rootfs`
|
then copy the rootfs to **FS_PREFIX/local**, and renamed `rootfs`
|
||||||
to `basefs`.
|
to `basefs`.
|
||||||
|
|
||||||
Note the `jupyerhub` package must be installed for this image. And the
|
Note the `jupyerhub` package must be installed for this image. And the
|
||||||
|
@ -179,21 +140,17 @@ Run `bin/docklet-worker start`, will start worker in background.
|
||||||
|
|
||||||
You can check the daemon status by running `bin/docklet-worker status`
|
You can check the daemon status by running `bin/docklet-worker status`
|
||||||
|
|
||||||
More usages can be found by typing `bin/docklet-worker`
|
|
||||||
|
|
||||||
The log is in **FS_PREFIX/local/log/docklet-worker.log**
|
The log is in **FS_PREFIX/local/log/docklet-worker.log**
|
||||||
|
|
||||||
Currently, the worker must be run after the master has been started.
|
Currently, the worker must be run after the master has been started.
|
||||||
|
|
||||||
## usage ##
|
## Usage ##
|
||||||
|
|
||||||
Open a browser, visiting the address specified by PORTAL_URL ,
|
Open a browser, visiting the address specified by PORTAL_URL ,
|
||||||
e.g., ` http://docklet.info/ `
|
e.g., ` http://docklet.info/ `
|
||||||
|
|
||||||
If the system is just deployed in single host for testing purpose,
|
|
||||||
then the PORTAL_URL defaults to `http://MASTER_IP:PROXY_PORT`,
|
|
||||||
e.g., `http://localhost:8000`.
|
|
||||||
|
|
||||||
That is it.
|
That is it.
|
||||||
|
|
||||||
## system admin ##
|
# Contribute #
|
||||||
|
|
||||||
|
Contributions are welcome. Please check [devguide](doc/devguide/devguide.md)
|
||||||
|
|
Loading…
Reference in New Issue