Bare-Metal Provisioning
The Kubernetes Deployment, aka KUD, has been designed to be consumed by Virtual Machines as well as Bare-Metal servers. The baremetal/aio.sh script contains the bash instructions for provisioning an All-in-One Kubernetes deployment in a Bare-Metal server. This document lists the Hardware & Software requirements and walkthrough the instructions that baremetal/aio.sh contains.
Hardware Requirements
Concept |
Amount |
---|---|
CPUs |
8 |
Memory |
32GB |
Hard Disk |
150GB |
Software Requirements
Ubuntu Server 16.04 LTS
baremetal/aio.sh
This bash script provides an automated process for deploying an All-in-One Kubernetes cluster.
The following two instructions start the provisioning process.
$ sudo su
# git clone https://git.onap.org/multicloud/k8s/
# cd k8s/kud/hosting_providers/baremetal/
# ./aio.sh
In overall, this script can be summarized in three general phases:
Generating Inventory.
Enabiling Nested-Virtualization.
Deploying KUD services.
Inventory
Ansible works agains multiple systems, the way for selecting them is through the usage of the inventory. The inventory file is a static source for determining the target servers used for the execution of ansible tasks. The aio.sh script creates an inventory file for addressing those tasks to localhost.
cat <<EOL > inventory/hosts.ini
[all]
localhost
[kube-master]
localhost
[kube-node]
localhost
[etcd]
localhost
[ovn-central]
localhost
[ovn-controller]
localhost
[virtlet]
localhost
[k8s-cluster:children]
kube-node
kube-master
EOL
KUD consumes kubespray for provisioning a Kubernetes base deployment.
Ansible uses SSH protocol for executing remote instructions. The following instructions create and register ssh keys which avoid the usage of passwords.
# echo -e "\n\n\n" | ssh-keygen -t rsa -N ""
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# chmod og-wx ~/.ssh/authorized_keys
Enabling Nested-Virtualization
KUD installs Virtlet Kubernetes CRI for running Virtual Machine workloads. Nested-virtualization gives the ability of running a Virtual Machine within another. The node.sh bash script contains the instructions for enabling Nested-Virtualization.
# ./node.sh
Deploying KUD services
Finally, the KUD provisioning process can be started through the use of installer.sh bash script. The output of this script is collected in the kud_installer.log file for future reference.
# ./installer.sh | tee kud_installer.log
