ubuntu-bakery.ps1

ubuntu bakery is a Joint work from Project DoDo (@stephan_kuehne and @azurestack_guy) with the goal to provide a simple, streamlined, basic configuration of Openstack, Kubernetes and /or Docker running on ubuntu including components like EMC SaleIO or EMC Unity with Cinder/Kubernetes Volume Support.

requirements

  • Internet Gateway, most probably labbuildr´s openwrt
Receive-LabOpenWRT -start
  • DNS Service, labbuildr dcnode recommended
.\build-lab.ps1 -Defaults -DConly

Currently, Bakery is able to deploy the following Scenraios:
Openstack
Kubernetes

openstack

example

\ubuntu-bakery.ps1 -openstack

this will install:

  • 3 Ubuntu 14_4 Nodes
  • ScaleIO Configuration with MDM´s on Ubuntu1 and Ubuntu2, Gateway / TB on Ubuntu3
  • ScaleIO SDS on all 3 Nodes
  • Horizon Dashbord on Ubuntu3
  • Nova Compute on Ubuntu1 and Ubuntu2
  • Default Openstack liberty

You may want to select mitaka or even Newton, however, as netwon deploys Ubuntu16_4 you can tweak the Size of controllernodes / Openstack Release with

.\ubuntu-bakery.ps1 -openstack -openstack_release mitaka -Compute_Size TXL

this will configure the compute nodes with 6GB of Memory and will aslo install a base tenant config image

create a volume from Horizon Portal

image

create Snapshot from Horizon Portal

image

view Volume and Snap Properties

image
image

view volume from ScaleIO Gui

image

Options

the Default configuration uses ScaleIO as a cinder Backend. you can Switch / add a backend / multi-backend with

./ubuntu-bakery.ps1 -openstack -cinder scaleio,unity    

the unity Backend expects a default labbuildr unity configuration, however, if you wand to specify a different Unity system * Unity, you need to pass along Custom_unity_ip
custom_unity_vpool_name
Custom_Unity_Target_ip where Targe_IP is the iSCSI Portal Address and Unity_IP is the Management IP

troubleshooting

for the bakery process of scaleio tail into /tmp/labbuildr.log on the Controller node: image

kubernetes

Kubernetes

you can start a basic Kubernetes setup by simply typing

.\ubuntu-bakery.ps1 -kubernetes

this will create a basic, 2-Node Kubernetes Deployment with a dedicated Master the default configuration builds up the system pod, flannel pod networking support, and the dashboard with rbac constraints. the deployment will take up to 6 Minutes.

you may also add scaleio switch, this will build a 3-node scaleio/kubernetes cluster

.\ubuntu-bakery.ps1 -kubernetes -scaleio

in step1, labbuildr deploy´s the 2 Nodes

image

then, after basic node config is done, kubernetes and docker binaries are installed. the first node will install the kubernetes master with kubeadm
image

the slave nodes will use kubeadm join to join the cluster. once the cluster is built, kubernetes dashboard deployment starts.

image

follow the instructions for Kubernetes Dashboard

Kubernetes Dashboard

there are multiple options to run the kubernetes dashboard - using kubectl on windows (copy config from host with scp upfront ):

Install-Script install-kubectl -Scope CurrentUser -Force
install-kubectl.ps1  -Downloadlocation $HOME/kubectl/
.$HOME/kubectl/kubectl.exe proxy

if you are running windows 10 with Bash support( requires at least Anniversary Update) the do the following: Open Bash on ubuntu on windows image if not already added, add the kubernetes repo to apt sources:

do a su session in bash

sudo su

run as root:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubectl

image

once kubectl is installed, exit the su session, make a .kube directory in your $HOME and copy the admin.conf from the master to your machine.

exit
mkdir $HOME/.kube
scp root@192.168.2.201:/root/admin.conf $HOME/.kube/config

start kubectl proxy to start serving the proxy to the dashboard

kubectl proxy

image

you can now start the dashboard by pointing the Browser to http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

image