Versions Compared

Key

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

...

As you see above in the picture, the bootstrap machine itself is based on K8S.  Note that this K8S is different from the K8S that gets installed in compute nodes.  That is, these are two different K8S clusters. In case of the bootstrap machine, it itself is a complete K8S cluster with one node that has both master and minion software combined.  All the components of the infra-local-controller (such as BPA, Metal3 and Ironic) are containers.  

...

As indicated above, infra-local-controller will bring up K8S clusters on the compute nodes used for workloads.  Bringing up a workload K8S cluster normally requires the following steps

  1. Bring up a Linux operating system.
  2. Provision the software with the right configuration
  3. Bring up basic Kubernetes components (such as Kubelet, Docker, kubectl, kubeadm etc..
  4. Bring up components that can be installed using kubectl.

...

The Baremetal Operator provides provisioning of compute nodes (either baremetal bare-metal or VM) by using the kubernetes Kubernetes API. The Baremetal Operator defines a CRD BaremetalHost Object representing a physical server; it represents several hardware inventories. Ironic is responsible for provisioning the physical servers, and the Baremetal Operator is for responsible for wrapping the Ironic and represents them as CRD object. 

...

The job of the BPA is to install all packages to the application-K8S that can't be installed using kubectl.  Hence, the BPA is used right after the compute nodes get installed with the Linux operating system, before installing kubernetesKubernetes-based packages.  BPA is also an implementation of CRD controller of infra-local-controller-k8s.  We expect to have the following CRs:

  • To upload site-specific information - compute nodes and their roles
  • To instantiate the binary package installation.
  • To get hold of application-K8S kubeconfig file.
  • Get status of the installation

...

  • To upload binary images that are used to install the stuff in compute nodes.
  • To upload a Linux Operating system that are needed in compute nodes.
  • Get status of installation of all packages as prescribed before.

...

@Kural - see comments under platform arch

Local Controller: kubeadmKubeadmMetal3, Baremetal Operator, Ironic, Prometheus, ONAP

Global Controller: kubeadmKubeadm, KuD, K8S Provisioning Manager, Binary Provisioning Manager, Prometheus, CSM

...

In ICN family stack, Baremetal operator from metal3 project is used as bare metal provider. It is used as a machine actuator that uses Ironic to provide k8s API to manage the physical servers that also run Kubernetes clusters on bare-metal host.

KuD

Kubernetes deployment (KUD) is a project that uses Kubespray to bring up a Kubernetes deployment and some addons on a provisioned machine. As it already part of ONAP it can be effectively reused to deploy the K8s App components(as shown in fig. II), NFV Specific components and NFVi SDN controller in the edge cluster. In R2 release KuD will be used to deploy the K8s addon such as  Virlet, OVN, NFD, and Intel device plugins such as SRIOV and QAT in the edge location(as shown in figure I). In R3 release, KuD will be evolved as "ICN Operator" to install all K8s addons. For more information on the architecture of KuD please find the information here

...

BPA Rest Agent: Enyinna Ochulor Tingjie Chen

KuD

Kubernetes deployment (KUD) is a project that uses Kubespray to bring up a Kubernetes deployment and some addons on a provisioned machine. As it already part of ONAP it can be effectively reused to deploy the K8s App components(as shown in fig. II), NFV Specific components and NFVi SDN controller in the edge cluster. In R2 release KuD will be used to deploy the K8s addon such as  Virlet, OVN, NFD, and Intel device plugins such as SRIOV and QAT in the edge location(as shown in figure I). In R3 release, KuD will be evolved as "ICN Operator" to install all K8s addons. For more information on the architecture of KuD please find the information here

ONAP4K8s: Kuralamudhan Ramakrishnan

...

SDWAN module is worked as a software-defined router which can be used to defined define the rules when connect connecting to the external internet. It is implemented as CNF instead of VNF for better performance and effective deployment, and leverage OpenWRT (an open-source project based on Linux, and used on embedded devices to route network traffic) and mwan3 package (for wan interfaces management) to implement its functionalities, detail information can be found at: SDWAN Module Design

...

Components

Link

Akraino Release target

Provision stack - Metal3

https://github.com/metal3-io/baremetal-operator/

R2

Host Operating system

Ubuntu 18.04

R2

Quick Access Technology(QAT) drivers

Intel® C627 Chipset - https://ark.intel.com/content/www/us/en/ark/products/97343/intel-c627-chipset.html

R2

NIC drivers

XL710 - https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf

R2

ONAP

https://git.onap.org/multicloud

R2

Workloads

OpenWRT SDWAN - https://openwrt.org/

R2

KUD

https://git.onap.org/multicloud/k8s/ 

R2

Kubespray

https://github.com/kubernetes-sigs/kubespray v2.10.4

R2

K8s

https://github.com/kubernetes/kubeadm - v1.1514

R2

Docker

https://github.com/docker - 18.09

R2

Virtlet

https://github.com/Mirantis/virtlet -1.4.4

R2

SDN - OVN

https://github.com/ovn-org/ovn-kubernetes - 0.3.0

R2

OpenvSwitch

https://github.com/openvswitch/ovs - 2.10.1

R2

Ansible

https://github.com/ansible/ansible - 2.7.10

R2

Helm

https://github.com/helm/helm - 2.9.1

R2

Istio

https://github.com/istio/istio - 1.0.3

R2

Rook/Ceph

https://rook.io/docs/rook/v1.0/helm-operator.html v1.0

R2

MetalLB

https://github.com/danderson/metallb/releases - v0.7.3

R2

Device Pluginshttps://github.com/intel/intel-device-plugins-for-kubernetes - QAT, SRIOVR2

Node Feature Discovery

R2

CNI

https://github.com/coreos/flannel/ - release tag v0.11.0

https://github.com/containernetworking/cni - release tag v0.7.0

https://github.com/containernetworking/plugins - release tag v0.8.1

https://github.com/containernetworking/cni#3rd-party-plugins - Multus v3.3tp, SRIOV CNI v2.0( with SRIOV Network Device plugin)

R2

...