Setting Up A Multi-nodes Stackube ====================================================== This page describes how to setup a multi-nodes cluster of Stackube. Prerequisites ------------- Roles ~~~~~ A stackube deployment is comprised by four kinds of nodes: control, network, compute, storage. - Control - The control node is where openstack/kubernetes/ceph's control-plane will run. - **At least one and only one node** (for now). - Minimum hardware requirements: - Two network interfaces - One is for public network connection, with a public IP. - The other one is for private network connection, with a private IP and MTU >= 1600. - 8GB main memory - 50GB disk space - Network - The network nodes are where neutron l3/lbaas/dhcp agents will run. - At least one node. - Minimum hardware requirements: - Two network interfaces - One is as neutron-external-interface. Public IP is not needed. - The other one is for private network connection, with a private IP and MTU >= 1600. - 8GB main memory - 50GB disk space - Compute - The compute nodes are where your workloads will run. - At least one node. - Minimum hardware requirements: - One network interface - For private network connection, with a private IP and MTU >= 1600. - 8GB main memory - 50GB disk space - Storage - The storage nodes are where ceph-osd(s) will run. - At least one node. - Minimum hardware requirements: - One network interface - For private network connection, with a private IP and MTU >= 1600. - 8GB main memory - 50GB disk space There is no conflict between any two roles. That means, all of the roles could be deployed on the same node(s). Host OS ~~~~~~~ For now only CentOS 7.x is supported. Public IP Pool ~~~~~~~~~~~~~~ A number of public IPs are needed. Deploy ------ All instructions below **must be done on the control node.** 1. SSH To The Control Node, And Become Root ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: sudo su - 2. Enable Password-Less SSH ~~~~~~~~~~~~~~~~~~~~~~~~~~~ The control node needs to ssh to all nodes when deploying. - Generate SSH keys on the control node. Leave the passphrase empty: :: ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. - Copy the key to each node (including the control node itself): :: ssh-copy-id root@NODE_IP 3. Clone Stackube Repo ~~~~~~~~~~~~~~~~~~~~~~ :: git clone https://git.openstack.org/openstack/stackube 4. Edit The Config File ~~~~~~~~~~~~~~~~~~~~~~~ :: cd stackube/install vim config_example 5. Do The Deploy ~~~~~~~~~~~~~~~~ :: bash deploy.sh config_example If failed, please **do remove** (as shown below) before deploy again. Remove ------ :: bash remove.sh config_example