Skip to content

DatawiseIO/Project6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Project 6 ##Kubernetes + Simplified Networking and Storage alt tag

##About Project 6 is software for deploying and managing Docker containers across a cluster of hosts, with a focus on simplifying network and storage configurations for on-premises environments. It builds on Google's Kubernetes, Docker and CoreOS's Etcd. Get your Kubernetes cluster up and running in just 3 simple steps in less than 10 minutes.

##Setup

Install Vagrant and VirtualBox

Note: Please download the latest vagrant >1.7.x from http://www.vagrantup.com/downloads.html

##Quick start guide

Clone the repository and bring up the VMs.

$ git clone https://github.com/DatawiseIO/Project6.git
$ cd Project6/vagrant
$ vagrant up

By default 3 VMs with 1G RAM & 2 CPU cores are created. Each VM is assigned a 192.168.30.x IP address. Datawise.io software is already installed in these VMs. dwctl is the command line tool to interact with the cluster. Every dwctl command has help available with the -h option.

Here are the three simple steps to create a cluster, provision a network and start nginx/mysql.

####Step 1 - Create a cluster

$ vagrant ssh node-1

$ dwctl cluster create mycluster 192.168.30.11,192.168.30.12,192.168.30.13 \
--vip 192.168.30.10 --poddns mycluster.datawise.io

Check cluster status

$ dwctl cluster status

####Step 2 - Create a network This network is used to assign IP addresses to pods.

$ dwctl network create blue -s 192.168.30.0/24 --start 192.168.30.101 \
--end 192.168.30.200 -g 192.168.30.1

####Step 3 - Create a stateless or stateful pod

#####Stateless example - nginx

$ dwctl pod create nginx -i docker.io/nginx:latest -n blue

Get status of the pod.

[root@node-1 ~]# dwctl pod get nginx
POD           IP             CONTAINER(S)   IMAGE(S)                HOST          LABELS    STATUS    CREATED
nginx         192.168.30.106 nginx          docker.io/nginx:latest  192.168.30.12 <none>    Running   10 seconds   

Connect to nginx using the url http://192.168.30.106

#####Stateful example - mysql

dwctl volume create wp-vol -v vol1,1G,ext4

dwctl pod create mysql -i docker.io/mysql:5.5 \
-v wp-vol/vol1:/var/lib/mysql,rw -n blue -c 1250 -m 750M \
-e MYSQL_ROOT_PASSWORD=root

###Advanced use cases Please refer to the docs and examples directories for more details on these use cases.

##Features ###Cluster management

  • Single command to set up a kubernetes cluster
  • Easy to grow/shrink the cluster
  • Self healing control plane with no single point of failure
  • Process management through systemd
  • Virtual IP for stable API endpoint access
  • NTP for cluster wide time synchronization
  • DNS server provisioning for external connectivity
  • MDNS based discovery of free nodes
  • Built in DNS server for pods
  • Integrated logging & monitoring services
  • Command line tool and REST interfaces

###Docker container management ####Kubernetes features

  • Pods
  • Replication controllers
  • Labels
  • Events
  • CPU, memory, constraint scheduler
  • cadvisor, heapster for statistics
  • Cluster DNS server for inter pod connectivity

####Datawise extensions

  • Direct attached storage scheduling & provisioning
  • Durable & temporary storage
  • Cluster wide network resource management (IPs & MACs)
  • Anti affinity scheduler
  • Agent container per node

##Roadmap This is a preliminary implementation (version 0.1), based on Docker (version 1.5.0) and Google’s Kubernetes (version 0.16), with plans to stay current with the new releases and make open source contributions back to those projects. Based on community input, we will add more enterprise grade network and storage features over time, and also extend compatibility to other orchestration layers such as Docker Swarm and Apache Mesos.

##Feedback & Support Your feedback, suggestions and questions are very important to us. Please let us know what you think via our discussion forum datawiseio-project6@googlegroups.com or by email project6@datawise.io.

A Vagrant and VirtualBox configuration is available via the Setup steps above for quick download and evaluation. If you would like to install the software in a different environment, or bare-metal servers please get in touch and we would be happy to help.

Disclaimer: this is an alpha/preview release. We are happy to answer questions and provide help on a best effort basis, but would not recommend production usage yet.