...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
PLEASE REFER TO R1 NETWORK CLOUD RELEASE DOCUMENTATION
NC Family Documentation - Release 1
THIS DOCUMENTATION WILL BE ARCHIVED
Contents
Table of Contents | ||
---|---|---|
|
...
This document describes the steps to create a single and multi-node edge sites.
Info |
---|
Unicycle (Three-Node Cluster) - Supported in the future release |
Akraino Portal Operations
Login
...
Hardware Requirements for Test
Up to 7 servers (3 control plus 1 to 4 workers) x86 Dell R740 servers
Build Server
- Any server or VM with Ubuntu Release 16.04
- Packages: Latest versions of sshpass, xorriso, and python-requests
- Docker 1.13.1 or later
Bare Metal Server
- Dell PowerEdge R740 server with no installed OS [ Additional types of hardware will be supported in the future release]
- Two interfaces for primary network connectivity bonding with DPDK enabled NIC
- 802.1q VLAN tagging for primary network interfaces
Akraino Portal Operations
Login
Visit the portal URL http://REGIONAL_NODE_IP:8080/AECPortalMgmt/
where REGIONAL_NODE_IP
is the Portal IP.
...
- Select an Edge Site - MTN1 or MTN2 (these are the two default lab sites hosted in middle town NJ) by clicking on radio button provided in the first column of the table.
- For the selected Edge Site, select the Unicycle Blueprint from the drop-down menu.
- Click on Upload button (in the Site column), this will open a pop-up dialog
Provide the edge site-specific details such as:
- Host IP address
- Host username
Host password.
Example: DELL Cluster:
- Host IP address: 192.168.2.40
Host username: root
Host password: XXXXXX
Example: HP Cluster
- Host IP address: 192.168.2.30
Host username: root
Host password: XXXXXX
4. Click on Browse button, select the input file for Blueprint - Unicycle (Multi-Node Cluster).
The input file is a property file that stores information in key-value
format. Sample input file used for ‘Unicycle’ deploy:
...
Code Block | ||||
---|---|---|---|---|
| ||||
--- ############################################################################## # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. # # # # Licensed under the Apache License, Version 2.0 (the "License"); you may # # not use this file except in compliance with the License. # # # # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # ############################################################################## site_name: dellgen10 ipmi_admin: username: root password: calvin networks: bonded: yes primary: bond0 slaves: - name: enp94s0f0 - name: enp94s0f1 oob: vlan: 40 interface: cidr: 192.168.41.0/24 routes: gateway: 192.168.41.1 ranges: reserved: start: 192.168.41.2 end: 192.168.41.12 static: start: 192.168.41.13 end: 192.168.41.254 host: vlan: 41 interface: bond0.41 cidr: 192.168.2.0/24 routes: gateway: 192.168.2.200 ranges: reserved: start: 192.168.2.84 end: 192.168.2.86 static: start: 192.168.2.40 end: 192.168.2.45 dns: domain: lab.akraino.org servers: '192.168.2.85 8.8.8.8 8.8.4.4' storage: vlan: 42 interface: bond0.42 cidr: 172.31.2.0/24 ranges: reserved: start: 172.31.2.1 end: 172.31.2.10 static: start: 172.31.2.11 end: 172.31.2.254 pxe: vlan: 43 interface: eno3 cidr: 172.30.2.0/24 gateway: 172.30.2.1 routes: gateway: 172.30.2.40 ranges: reserved: start: 172.30.2.2 end: 172.30.2.10 static: start: 172.30.2.11 end: 172.30.2.200 dhcp: start: 172.30.2.201 end: 172.30.2.254 dns: domain: lab.akraino.org servers: '192.168.2.85 8.8.8.8 8.8.4.4' ksn: vlan: 44 interface: bond0.44 cidr: 172.29.1.0/24 local_asnumber: 65531 ranges: static: start: 172.29.1.5 end: 172.29.1.254 additional_cidrs: - 172.29.1.128/29 ingress_cidr: 172.29.1.129/32 peers: - ip: 172.29.1.1 scope: global asnumber: 65001 vrrp_ip: 172.29.1.1 # keep peers ip address in case of only peer. neutron: vlan: 45 interface: bond0.45 cidr: 10.0.102.0/24 ranges: reserved: start: 10.0.102.1 end: 10.0.102.10 static: start: 10.0.102.11 end: 10.0.102.254 dns: upstream_servers: - 192.168.2.85 - 8.8.8.8 - 8.8.8.8 upstream_servers_joined: '192.168.2.85,8.8.8.8' ingress_domain: dellgen10.akraino.org sriovnets: - physical: sriovnet1 interface: enp135s0f0 vlan_start: 2001 vlan_end: 3000 whitelists: - "address": "0000:87:02.0" - "address": "0000:87:02.1" - "address": "0000:87:03.2" - "address": "0000:87:03.3" - "address": "0000:87:03.4" - "address": "0000:87:03.5" - "address": "0000:87:03.6" - "address": "0000:87:03.7" - "address": "0000:87:04.0" - "address": "0000:87:04.1" - "address": "0000:87:04.2" - "address": "0000:87:04.3" - "address": "0000:87:02.2" - "address": "0000:87:04.4" - "address": "0000:87:04.5" - "address": "0000:87:04.6" - "address": "0000:87:04.7" - "address": "0000:87:05.0" - "address": "0000:87:05.1" - "address": "0000:87:05.2" - "address": "0000:87:05.3" - "address": "0000:87:05.4" - "address": "0000:87:05.5" - "address": "0000:87:02.3" - "address": "0000:87:05.6" - "address": "0000:87:05.7" - "address": "0000:87:02.4" - "address": "0000:87:02.5" - "address": "0000:87:02.6" - "address": "0000:87:02.7" - "address": "0000:87:03.0" - "address": "0000:87:03.1" - physical: sriovnet2 interface: enp135s0f1 vlan_start: 2001 vlan_end: 3000 whitelists: - "address": "0000:87:0a.0" - "address": "0000:87:0a.1" - "address": "0000:87:0b.2" - "address": "0000:87:0b.3" - "address": "0000:87:0b.4" - "address": "0000:87:0b.5" - "address": "0000:87:0b.6" - "address": "0000:87:0b.7" - "address": "0000:87:0c.0" - "address": "0000:87:0c.1" - "address": "0000:87:0c.2" - "address": "0000:87:0c.3.6" - "address": "0000:87:0a0b.27" - "address": "0000:87:0c.40" - "address": "0000:87:0c.51" - "address": "0000:87:0c.62" - "address": "0000:87:0c.73" - "address": "0000:87:0d0a.02" - "address": "0000:87:0d0c.14" - "address": "0000:87:0d0c.25" - "address": "0000:87:0d0c.36" - "address": "0000:87:0d0c.47" - "address": "0000:87:0d.50" - "address": "0000:87:0a0d.31" - "address": "0000:87:0d.62" - "address": "0000:87:0d.73" - "address": "0000:87:0a0d.4" - "address": "0000:87:0a0d.5" - "address": "0000:87:0a.63" - "address": "0000:87:0a0d.76" - "address": "0000:87:0b0d.07" - "address": "0000:87:0b0a.14" storage: osds: - data: /dev/sda journal: /var/lib/ceph/journal/journal-sda - data: /dev/sdb journal: /var/lib/ceph/journal/journal-sdb - data: /dev/sdc journal: /var/lib/ceph/journal/journal-sdc - data: /dev/sdd journal: /var/lib/ceph/journal/journal-sdd"address": "0000:87:0a.5" - "address": "0000:87:0a.6" - "address": "0000:87:0a.7" - "address": "0000:87:0b.0" - "address": "0000:87:0b.1" storage: osds: - data: /dev/sdesda journal: /var/lib/ceph/journal/journal-sdesda - data: /dev/sdf journal: /var/lib/ceph/journal/journal-sdf osd_count: 6 total_osd_count: 18 genesis: name: aknode40 oob: 192.168.41.40 host: 192.168.2.40 storage: 172.31.2.40 pxe: 172.30.2.40 ksn: 172.29.1.40 neutron: 10.0.102.40 masters: - name : aknode41 oob: 192.168.41.41 host: 192.168.2.41 storage: 172.31.2.41 pxe: 172.30.2.41 ksn: 172.29.1.41 neutron: 10.0.102.41 - name : aknode42 sdb journal: /var/lib/ceph/journal/journal-sdb - data: /dev/sdc journal: /var/lib/ceph/journal/journal-sdc - data: /dev/sdd journal: /var/lib/ceph/journal/journal-sdd - data: /dev/sde journal: /var/lib/ceph/journal/journal-sde - data: /dev/sdf journal: /var/lib/ceph/journal/journal-sdf osd_count: 6 total_osd_count: 18 genesis: name: aknode40 oob: 192.168.41.4240 host: 192.168.2.4240 storage: 172.31.2.4240 pxe: 172.30.2.4240 ksn: 172.29.1.4240 neutron: 10.0.102.4240 #workersmasters: # - name : aknode43aknode41 # oob: 192.168.41.4341 # host: 192.168.2.4341 # storage: 172.31.2.4341 # pxe: 172.30.2.4341 # ksn: 172.29.1.4341 # neutron: 10.0.102.4341 # - name : aknode44aknode42 # oob: 192.168.41.4442 # host: 192.168.2.4442 # storage: 172.31.2.4442 # pxe: 172.30.2.4442 # ksn: 172.29.1.4442 # neutron: 10.0.102.4442 hardware: vendor: DELL generation: '10' hw_version: '3' bios_version: '2.8' disks: - name : sdg labels: bootdrive: 'true' partitions: - name: root size: 20g mountpoint: / - name: boot size: 1g mountpoint: /boot - name: var size: 100g mountpoint: /var - name : sdh partitions: - name: ceph size: 300g mountpoint: /var/lib/ceph/journal disks_compute: - name : sdg labels: bootdrive: 'true' partitions: - name: root size: 20g mountpoint: / - name: boot size: 1g mountpoint: /boot - name: var size: '>300g' mountpoint: /var - name : sdh partitions: - name: nova size: '99%' mountpoint: /var/lib/nova genesis_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/n4mNLAj3XKG2fcm+8eVe0NUlNH0g8DA8KJ53rSLKccm8gm4UgLmGOJyBfUloQZMuOpU6a+hexN4ECCliqI7+KUmgJgsvLkJ3OUMNTEVu9tDX5mdXeffsufaqFkAdmbJ/9PMPiPQ3/UqbbtyEcqoZAwUWf4ggAWSp00SGE1Okg+skPSbDzPVHb4810eXZT1yoIg29HAenJNNrsVxvnMT2kw2OYmLfxgEUh1Ev4c5LnUog4GXBDHQtHAwaIoTu9s/q8VIvGav62RJVFn3U1D0jkiwDLSIFn8ezORQ4YkSidwdSrtqsqa2TJ0E5w/n5h5IVGO9neY8YlXrgynLd4Y+7 root@pocnjrsv132" kubernetes: api_service_ip: 10.96.0.1 etcd_service_ip: 10.96.0.2 pod_cidr: 10.98.0.0/16 service_cidr: 10.96.0.0/15 regional_server: ip: 135.16.101.85 ... |
...
5. Click on Submit. This will upload the input file and the site details into the portal.
6. User will see the file uploaded successfully message in the sites column then Build button is enabled.
a. Click on Build to begin the build process.
b. User can click on Refresh (link) to update the status of the build on the portal.
c. The build status changes from ‘Not started’ to ‘In progress’ to ‘Completed’.
d. The build process will generate all the required yaml files with site details. User can view the generated yaml files by clicking ‘view yaml build file’ provided in Build status column.
7. User will see the ‘Completed’ status in build status column then Deploy button is enabled.
a. Click on Deploy to begin the deploy process.
b. User can click on Refresh (link) to update the status of the build on the portal.
Note: In portal when the overall status of the Deploy is success, login to each node and check deploy site logs under /var/log/deploy_site_yyyymmddhhmm.log file by using the command tail -f /var/log/deploy_site_yyyymmddhhmm.log file
...
Following is the snippet from root@aknode44:/var/log# vi scriptexecutor.log
2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + deploy_site
2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + sudo docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 create action deploy_site
2018-10-02 17:29:02.273 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Name Action Lifecycle Execution Time Step Succ/Fail/Oth
2018-10-02 17:29:02.274 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : deploy_site action/01CRTX8CTJ8VHMSNVC2NHGWKCY None 2018-10-02T17:29:53 0/0/0
2018-10-02 17:29:02.546 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Script exit code :0
Based on the above snippet you can frame a command like following(just concatenate highlighted partes and add describe in the middle) and run it on aknode40 to see the status deploy_site,
root@aknode40:~# docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 describe action/01CRTX8CTJ8VHMSNVC2NHGWKCY
Appendix
Create New Edge Site locations
Info |
---|
The Akraino seed code comes with default two sites: MTN1, MTN2 representing two lab sites in Middletown, NJ. This step of connecting to the database and creating edge_site records are only required if the user wishes to deploy on other sites. |
To deploy a Unicycle (Multi-Node Cluster) Edge Node, perform the following steps:
- Check if the Akraino (Docker Containers) packages are stood up.
- Connect to PostgreSQL database providing the host IP (name).
Code Block | ||
---|---|---|
| ||
jdbc:postgresql://<IP-address-of-DB-host>:6432/postgres user name = admin password = abc123 |
Info |
---|
use ‘pgAdmin |||’ Postgres client tool or connect to Postgres DB using SQL interface |
- Execute the following SQL insert, bearing in mind these value substitutions:
edge_site_id
: Any unique increment value. This is usually 1 but does not have to be.edge_site_name
: Human-readable Edge Node name.region_id
: Edge Node region number. Useselect * from akraino.Region;
to determine the appropriate value. Observe the region number associations returned from the query: Use 1 for US East, 2 for US West, and so on.
Code Block | ||
---|---|---|
| ||
> insert into akraino.edge_site(edge_site_id, edge_site_name, crt_login_id, crt_dt, upd_login_id, upd_dt, region_id) values( 1, 'Atlanta', user, now(), user, now(),1); |
...