Release 6 Installation Document
- 1 Introduction
- 2 How to use this document
- 3 Deploy Architecture
- 4 Pre-Installation Requirements
- 5 Installation High-Level Overview
- 6 Verifying the Setup
- 7 Developer Guide and Troubleshooting
- 8 Uninstall Guide
- 9 Troubleshooting
- 10 Maintenance
- 11 Frequently Asked Questions
- 12 License
- 13 References
- 14 Definitions, acronyms and abbreviations
Introduction
IEC Akraino Edge Stack supports AR/VR applications. It could support AR/VR Algorithms that with GPU Modeling (i.e. modeling describes the process of forming the shape of an object) Compositing (e.g. Environmental Mapping, Tone Mapping) Rendering and Illumination Models Visualization of Large Volume 3D Models (e.g. Global Network Operations Center monitoring) Registration (e.g. Stitching data from distributed sources) Segmentation (e.g. Segmentation and detection for security monitoring). This IEC Type 4 AR/VR platform utilizes Tars for remote direct memory access control. In this document, we use Virtual Classroom as demo for IEC Type4. Virtual Classroom is an online learning environment that allows teachers and students to communicate and interact with each other in real time. We use WebGL, Three.js and JavaScript to develop Virtual Classroom application.
License
Apache License - V2
How to use this document
The document includes details of prerequisites /pre-installation, installation and uninstalls steps.
The prerequisites and pre-installation software and hardware should be ready before executing the installation steps.
Deploy Architecture
To make the system deploy, the minimum deployment architecture is shown below, which consist of:
Pre-Installation Requirements
Hardware Requirements
Wearable Glass (Optional)
Teacher Client-Side — Personal Computer with Camera
Student Client-Side — Personal Computer with Camera
Server Side — 8 Core 16G Virtual Machine on ARM or x86 Platform
Software Prerequisites
Teacher Side: Windows 10 with a Web Browser that supports WebSockets.
Student Side: Windows 10 with a Web Browser that supports WebSockets.
Server Side: CentOS 7.8
Virtual Classroom (OpenVidu 2.13.0)
Tars 2.4.13
IEC 3.0
Database Prerequisites
N/A
Other Installation Requirements
N/A
Installation on the Client PC side(Teacher/Student Client)
Note well: No special software to access the application. The general software is itemized below:
Install Windows 10
Install camera driver
Install Firefox browser
Installation High-Level Overview
Upstream Deployment Guide
K8STARS is a convenient solution to run TARS services in Kubernetes, and it has the following characteristics:
- Maintain the native development capability of TARS;
- Automatic registration and configuration deletion of name service for TARS;
- Support smooth migration of original TARS services to K8S and other container platforms;
- Non intrusive design, no coupling relationship with operating environment.
How K8STARS works?
Three interfaces are added in the tarsregistry, which are used for automatic registration, heartbeat reporting and node offline. For details, please refer to interface definition。
A 'tarscli' command-line tool is provided to allocate ports, generate configuration, report heartbeat and node offline.
Deployment
Deployment tars basic service
Deployment service example
Deploy sample simpleserver:
cd examples/simple && kubectl apply -f simpleserver.yaml
Example description:
The image is created by the
examples/simple/dockerfilefile, and the basic image is created bycmd/tarscli/dockerfilestart.sh:
tarscli genconfin is used to generate the tars service startup configurationserver_ meta.yaml The file is used to configure the metadata of the service. For field information, please refer to
app/genconf/config.gostructureServerConf. Endpoint defaults totcp -h ${local_ip} -p ${random_port}, supports automatic filling of IP and random ports. -ased on Golang HelloWorld program TestApp.HelloGo See examples/README.md
3. Verify the deployment Login db_tars , then execute select * from t_server_conf\G The node information of simpleserver has been registered automatically.
Tars deployment directory structure
tarscli based on environment variable TARS_PATH(default/tars) to manage services. The directory functions are as follows:
${TARS_PATH}/bin:Startup scripts and binaries${TARS_PATH}/conf:Configuration file${TARS_PATH}/log: Log file${TARS_PATH}/data:Runtime, Cache file
About tarscli
tarscli provides a set of command tools to facilitate container deployment of TARS services. Parameters can be specified through environment variables. For details, see tarscli help.
Here are the sub commands supported by tarscli
genconfis used to generate the startup configuration file of the TARS service. The supported environment variables are:TARS_APPLICATIONthe application name specified. By default, the_ server_ meta.yamlRead fromTARS_SERVERis the service name specified by the_ server_ meta.yamlRead fromTARS_BUILD_SERVERthe service name at compile time. It will be used when the compiled service name is different from the running service nameTARS_LOCATORcan specify the address of registry. The default istars.tarsregistry.QueryObj@tcp -h tars-registry.tars-system.svc.cluster.local -p 17890(address of service)TARS_SET_IDcan specify service setTARS_MERGE_Confcan specify the configuration template file and merge the configuration into the service startup configuration file
supervisorexecutes thegenconfcommand by default, and then starts and monitors the service. The supported environment variables are:TARS_START_PATHThe startup script of the service$TARS_PATH/bin/start.shTARS_STOP_PATHThe stop script, by default, kill all service processes under path$TARS_PATHTARS_REPORT_INTERVALreports the interval heartbeat to registryTARS_DISABLE_FLOWwhether to enable traffic when registering with registry. If it is not empty, it means it is off. It is enabled by defaultTARS_CHECK_INTERVALcheck the service status interval. If the status changes, it will be synchronized to the registry in real timeTARS_BEFORE_CHECK_SCRIPTthe shell command that runs before each checkTARS_CHECK_SCRIPT_TIMEOUTthe timeout to run the shell command before each checkTARS_PRESTOP_WAITTIMEturn off traffic - the waiting time before stopping the service. It is used for lossless changes. The default value is 80 seconds
hzcheckis used to synchronize the service status and the pod status of k8s. You need to set thereadiness Probeof pod totarscli hzcheckcommandprestopis used to delete the configuration corresponding to the registry before the service exitsTARS_PRESTOP_WAITTIMEturn off traffic - the waiting time before stopping the service. It is used for lossless changes. The default value is 80 seconds
notifyis used to send management commands. The common commands are: tars.setloglevel/tars.pprof, etc