Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

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.

Image RemovedImage Added

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.ComponentCategoryVersionLicense
1IEC Edge InfrastructureIntegrated Edge Cloud (IEC) Blueprint Family -R2Apache 2.0
2EtcdDatabasev3.3.18Apache 2.0
3HelmApplication Package Managerv2.13.1Apache 2.0
4MysqlDatabase>5.5GNU General Public License Version 2
5Node-exporterNode Metricsv0.18.1Apache 2.0
6PrometheusMonitoringv2.15.0Apache 2.0
7Fluent-bit Log Processor and Forwarder1.3Apache 2.0
8ElasticsearchLog Search Engine6.5.0Apache 2.0
9AlertmanagerMonitoringv0.20.0Apache 2.0
10

OTE WebFrontend

Web Platform0.1.14Apache 2.0
11OTE OpenAPIAPI Gateway0.1.5.8Apache 2.0
12OTE Cluster ControllerFramework2.0Apache 2.0
13K8s-cluster-shimPerformer of Edge Cluster2.0Apache 2.0
14NodeAgentMetrics Collector Agent2.0Apache 2.0
15NodeServerMetrics Aggregation Service2.0Apache 2.0
16

DataQueryServer

Metrics Search Service2.0Apache 2.0

APIs

Video Security Monitory Monitoring R3 API Document

Hardware and Software Management

Software ManagementGerrit Repo

Licensing

  • Apache 2.0 license