EMCO Architecture & Design

Background

The Edge Multi Cloud Orchestrator (EMCO) - also previously known as ONAP4K8S version 2 - is an application orchestrator designed to deploy geo-distributed appliations across multiple edge/cloust kubernetes clusters.

See the following articles for background on the requirements and architectural principles:

Architecture Overview

The following diagram depicts a high level overview of the EMCO architecture.

  • Cluster Registration Controller registers clusters by cluster owners

  • Network Configuration Management handles creation/management of virtual and provider networks

  • Distributed Application Scheduler provides simplified, and extensible placement

  • Hardware Platform Aware Controller enables scheduling with auto-discovery of platform features/ capabilities

  • Distributed Cloud Manager presents a single logical cloud from multiple edges

  • Secure Mesh Controller auto-configures both service mesh (ISTIO) and security policy (NAT, firewall)

  • Secure WAN Controller automates secure overlays across edge groups

  • Resource Syncronizer manages instantiation of resources to clusters

  • Monitoring covers distributed application



The following diagram illustrates  additional details of the EMCO architecture.



The following sections will describe specific components in greater detail.

Distributed Application Scheduler

Resource Synchronizer

Cluster Registration Controller

Network Configuration Management

Distributed Cloud Management

Status Monitoring

Placement Controllers

Action Controllers

Getting Started - EMCO Installation

The EMCO microservices can be installed into a Kubernetes cluster.

See here for the helm chart:  https://github.com/onap/multicloud-k8s/tree/master/deployments/helm/onap4k8s

To install with kubectl, see here:  https://github.com/onap/multicloud-k8s/tree/master/deployments/kubernetes



The clusters to which EMCO deploys resources can be any Kubernetes cluster.  However,  because EMCO provides built in OVN4K8S networking support, clusters with OVN4K*S installed is required if that networking option is needed.

The KUD project provides one method for installing a cluster that has these required features:  https://github.com/onap/multicloud-k8s/tree/master/kud



Also, for status monitoring, EMCO utilizes the monitor microservice and associated CRD.  

Current files needed to setup and install are here:  https://github.com/onap/multicloud-k8s/tree/master/src/monitor/deploy  (see the monitor-deploy.sh file)



EMCO Operations