Versions Compared

Key

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

...

Linux containers allow for an application and all of its operating system dependencies to be packaged and deployed as a single unit without including a guest operating system as done with virtual machines. The most popular container solution is Docker which provides tools for container management like the Docker Host (dockerd) which can create, run, stop, move, or delete a container. Docker has a very popular registry of containers images that can be used by any Docker system; however, in the ONAP context, Docker images are built by the standard CI/CD flow and stored in Nexus repositories. OOM uses the "standard" ONAP docker containers and three new ones specifically created for OOM.


Containers are isolated from each other primarily via name spaces within the Linux kernel without the need for multiple guest operating systems. As such, multiple containers can be deployed with little overhead such as all of ONAP can be deployed on a single host. With some optimization of the ONAP components (e.g. elimination of redundant database instances) it may be possible to deploy ONAP on a single laptop computer.

...

  • Load Balancers
  • Horizontal Scaling
  • Stateless Pods

ONAP 'OneClick' Deployment Walk-though

Kubernetes Deployment with Rancher

...

  • deploy the configuration and host mount data
  • display default deployments Expand sourcedeployments
  • display default pods Expand source
  • create a single use configuration pod Expand sourcepod
  • ...

ONAP 'OneClick' Deployment Walk-though


The bash script createAll.bash is used to create an ONAP deployment with kubernetes. It has two primary functions:

  • Creating the namespaces used to encapsulate the ONAP components, and
  • Creating the services, pods and containers within each of these namespaces that provide the core functionality of ONAP.

Namespaces provide isolation between ONAP components as ONAP release 1.0 contains duplicate application (e.g. MariaDB) and port usage. As such createAll.bash requires the user to enter a namespace prefix string (e.g. createAll.bash -n onap) that can be used to separate multiple deployments of onap. The result will be set of 10 namespaces (e.g. onap-sdc, onap-aai, onap-mso, onap-message-router, onap-robot, onap-vid, onap-sdnc, onap-portal, onap-policy, onap-appc) being created within the kubernetes environment.

Within the namespaces are kubernete's services that provide external connectivity to pods that host Docker containers. The following is a list of the namespace and the services within:

  • onap-aai
    • aai-service
    • hbase
    • model-loader-service
  • onap-appc
    • dbhost
    • dgbuilder
    • sdnctldb01
    • sdnctldb02
    • sdnhost
  • onap-message-router
    • dmaap
    • global-kafka
    • zookeeper
  • onap-mso
    • mariadb
    • mso
  • onap-policy
    • brmsgw
    • drools
    • mariadb
    • nexus
    • pap
    • pdp
    • pypdp
    • portalapps
    • portaldb
    • vnc-portal
  • onap-robot
    • robot
  • onap-sdc
    • sdc-be
    • sdc-cs
    • sdc-es
    • sdc-fe
    • sdc-kb
  • onap-sdnc
    • dbhost
    • sdnc-dgbuilder
    • sdnc-portal
    • sdnctldb01
    • sdnctldb02
    • sdnhost
  • onap-vid
    • vid-mariadb
    • vid-server

Note that services listed in italics are local to the namespace itself and not accessible from outside of the namespace.

FAQ (Frequently Asked Questions)

...

Currently ONAP configuration parameters are stored in multiple files; a solution to coordinate these configuration parameters is required. Kubernetes Config Maps may provide a solution or at least partial solution to this problem.

  • Centralized Parameter Control

  • Component Rationalization
    Duplicate containers - The VM structure of ONAP hides internal container structure from each of the components including the existence of duplicate containers such as Maria DB.

...