...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Table of Contents
Blueprint overview/Introduction
...
Many cloud native monitoring applications are used to collect container/node resource usage and running log, like prometheus, elasticsearch.
The below image shows the overall architecture for using ICD as edge infrastructure in AI Edge.
Platform Architecture
...
- The global scheduler is fully compatible with kubernetes. Users can operate directly using kubectl;
- Using websocket for the edge-cloud communication;
- In addition to the cluster name, the cluster tag can be added customically. Cluster tag matching through intelligent cluster-selecter to achieve accurate routing of messages;
- Through k8s-cluster-shim to achieve the management of kubernetes cluster, shielding the native implementation within the kubernetes cluster;
- According to the interface of OTE-Stack, the cluster shim of the third party cluster can be realized to access and schedule the third party cluster. The internal implementation of the third party cluster is shielded;
- Each layer can be used as a control entry to control all sub-clusters below this layer. Users can also use kubectl or API to implement custom cluster management and scheduling.
...
OTE Components
WebFrontend
WebFronted is a web portal which provides a graphical user interface to help users manage deployment in multiple clusters.
OpenAPI
OpenAPI is a HTTP server that accepts REST-like API requests and preprocess these requests in advance to determine whether they match the required criteria, then pass these request to the backend components for further processing.
Scheduler
Scheduler aims to schedule pod and resource across different clusters that belongs to user. This function will be available in the future and is not supported right now.
cluster-controller
ClusterController is a message connector which joins the multiple clusters. It consists of the following components:
- EdgeTunnel
Northbound interface of Controller. By establishing websocket connection with CloudTunnel of upper cluster, messages between clusters can be transmitted smoothly.
- EdgeHandler
It can add tags to cluster, receive and process messages from upper cluster, transmit messages to ClusterHandler, receive messages from ClusterHandler and realize cluster disaster recovery automatically.
- Users can configure their own cluster name or add cluster tags to achieve complex cluster management.
- Used for receiving messages sent by EdgeTunnel and forwarding them to Cluster Selecter for routing or direct transmission to ClusterHandler after processing.
- Receive messages sent back by ClusterHandler or shim (such as changes in sub-cluster, status, etc.) and pass them to the upper cluster through EdgeTunnel after processing.
- Once the connection between the current cluster and the parent cluster is established, the sibling cluster of the parent, the parent cluster of the parent and the sibling cluster of itself will be automatically acquired as the alternative cluster. When Disconnected,the alternative one is connected automatically. The connection to the central can be quickly restored. Meanwhile, it regularly checks whether the previous parent cluster is restored, and once restored, it restores the previous connection topology.
- ClusterSelecter
It is used to complete the routing of cluster messages, and it accepts the processing of two kinds of cluster routing rules.
- If it is a real list of cluster names, it matches the names according to the cluster routing rules and looks for the next hop until it reaches the specified cluster accurately.
If it's a cluster's fuzzy rules, such as* tagA*, it matches all tagA-containing clusters in the tag and maps them to the real names of the clusters. Then it uses the above rules to pass down until it reaches the specified cluster accurately.
- ClusterHandler
It's core components of cluster management.
- Store the names and labels of all subclusters.
- Establish routing rules that store the next hop cluster name to any sub-cluster to support accurate delivery of messages.
- Notify the upper cluster in time when the sub-cluster changes (such as disconnection, status updates, etc.)
- CloudTunnel
Southbound interface of Controller. By establishing websocket connection with EdgeTunnel of sub-cluster, messages between clusters can be transmitted smoothly.
...
Operations for a single VM, such as start, stop, etc.
Software components
S.No. | Component | Category | Version | License |
---|---|---|---|---|
1 | IEC | Edge Infrastructure | Integrated Edge Cloud (IEC) Blueprint Family -R2 | Apache 2.0 |
2 | Etcd | Database | v3.3.18 | Apache 2.0 |
3 | Helm | Application Package Manager | v2.13.1 | Apache 2.0 |
4 | Mysql | Database | >5.5 | GNU General Public License Version 2 |
5 | Node-exporter | Node Metrics | v0.18.1 | Apache 2.0 |
6 | Prometheus | Monitoring | v2.15.0 | Apache 2.0 |
7 | Fluent-bit | Log Processor and Forwarder | 1.3 | Apache 2.0 |
8 | Elasticsearch | Log Search Engine | 6.5.0 | Apache 2.0 |
9 | Alertmanager | Monitoring | v0.20.0 | Apache 2.0 |
10 | OTE WebFrontend | Web Platform | 0.1.14 | Apache 2.0 |
11 | OTE OpenAPI | API Gateway | 0.1.5.8 | Apache 2.0 |
12 | OTE Cluster Controller | Framework | 2.0 | Apache 2.0 |
13 | K8s-cluster-shim | Performer of Edge Cluster | 2.0 | Apache 2.0 |
14 | NodeAgent | Metrics Collector Agent | 2.0 | Apache 2.0 |
15 | NodeServer | Metrics Aggregation Service | 2.0 | Apache 2.0 |
16 | DataQueryServer | Metrics Search Service | 2.0 | Apache 2.0 |
APIs
Video Security Monitory Monitoring R3 API Document
Hardware and Software Management
Software Management: Gerrit Repo
Licensing
Apache 2.0 license