...
This document provides guidelines on how to install the Akraino IEC Release 12, including required software and hardware configurations.
...
Currently, the chosen operating system (OS) is Ubuntu 16.04 and/or 18.04.
The infrastructure orchestration of IEC is based on Kubernetes, which is a production-grade container orchestration with a rich running eco-system.
The current There are some options for Container Network Interface (CNI) solutions for IEC, e.g Calico, Contiv-vpp and Flannel. But the default container network interface (CNI) solution chosen for Kubernetes is project is Calico, which is a high performance, scalable, policy enabled and
widely and widely used container networking solution with rather easy installation and arm64 support.
How to use this document
The following sections describe the prerequisites for planning an IEC
deployment. Once these are met, installation steps provided should be followed
in order to obtain an IEC compliant Kubernetes cluster.
...
- the first node will have the role of Kubernetes Master;
- all other nodes will have the role of Kubernetes Slave;
- Calico/Flannel/Contiv will be used as container network interface (CNI);
...
Minimum Hardware Requirements
HW Aspect | Requirement | ||
---|---|---|---|
1 Jumpserver | A physical or virtualized machine that has direct network connectivity to the cluster nodes.
| ||
CPU | Minimum 1 socket (each cluster node) | ||
RAM | Minimum 2GB/server (Depending on usecase work load) | ||
Disk | Minimum 20GB (each cluster node) | ||
Networks | Mininum 1 |
Recommended Hardware Requirements
HW Aspect | Requirement | ||
---|---|---|---|
1 Jumpserver | A physical or virtualized machine that has direct network connectivity to the cluster nodes.
| ||
CPU | 1 socket (each cluster node) | ||
RAM | 16GB/server (Depending on usecase work load) | ||
Disk | 100GB (each cluster node) | ||
Networks | 2/3 (management and public, optionally separate PXE) |
Software Prerequisites
- Ubuntu 16.04/18.04 is installed on each node;
- SSH server running on each node, allowing password-based logins;
- a user (by default named iec, but can be customized via config later) is present on each node;
- iec user has passwordless sudo rights;
- iec user is allowed password-based SSH login;
...
The jump host (jumpserver) operating system should be preprovisionedpre-provisioned. No special software requirements apply apart from package prerequisites:
...
Code Block | ||
---|---|---|
| ||
jenkins@jumpserver:~$ git clone https://gerrit.akraino.org/r/iec.git jenkins@jumpserver:~$ cd iec/src/foundation/scripts jenkins@jumpserver:~/iec/src/foundation/scripts$ vim config.sh #!/bin/bash # shellcheck disable=SC2034 # Host user which can log into master and each worker nodes HOST_USER=${HOST_USER:-iec} REPO_URL="https://gerrit.akraino.org/r/iec" #log file LOG_FILE="kubeadm.log" # Master node IP address K8S_MASTER_IP="10.169.36.152" # HOST_USER's password on Master node K8S_MASTERPW="123456" ###################################################### # # K8S_WORKER_GROUP is an array which consists of 2 # parts. One is k8s worker ip address. The other is # the user password. # ###################################################### K8S_WORKER_GROUP=( "10.169.40.106,123456" ) # K8s parameter CLUSTER_IP=172.16.1.136 # Align with the value in our K8s setup script POD_NETWORK_CIDR=192.168.0.0/16 #IEC support three kinds network solution for Kubernetes: calico,flannel,contivpp CNI_TYPE=calico #kubernetes-cni version 0.7.5/ 0.6.0 CNI_VERSION=0.6.0 #kubernetes version: 1.15.2/ 1.13.0 KUBE_VERSION=1.13.0 # DEV_NAME is an associative array, list network interface device names used by contivpp, # Use IP address of K8S_WORKER_GROUP as key, for example # DEV_NAME=( # [10.169.40.106]="enp137s0f0" # ) declare -A DEV_NAME DEV_NAME=() |
Running
Simply start the installation script with default parameters in the same directory:
Code Block | ||
---|---|---|
| ||
jenkins@jumpserver:~/iec/src/foundation/scripts$ ./startup.sh |
If you want to deploy K8s with other options, please refer to following commands:
Code Block | ||
---|---|---|
| ||
jenkins@jumpserver:~/iec/src/foundation/scripts$ ./startup.sh -C flannel -k 1.15.2 -c 0.7.5 #Deploy 1.15.2 K8s with Flannel CNI jenkins@jumpserver:~/iec/src/foundation/scripts$ ./startup.sh -C contivpp -k 1.15.2 -c 0.7.5 # Deploy 1.15.2 K8s with Contiv-vpp CNI |
If you want to deploy the K8s with Contiv-vpp, you must specify 1 NIC which will be used in Contiv-vpp.
Virtual Deployment Guide
Standard Deployment Overview
...
IEC installation automatically performs one simple test of the Kubernetes cluster installation by spawning an nginx container and fetching a sample file via HTTP.`Akraino Blueprint Validation`_ integration will later offer a complete e2e (end to end) validation of the Kubernetes installation by running the complete e2e test suite of `Sonobuoy`_ diagnostics suite. Meanwhile, `Sonobuoy`_ can be used manually by following the instructions in its README file.
OpenStack Verification
N/A
...