Files
tacker/doc/source/user/architecture.rst
Ai Hamano 8e50a7dc0b Documentation improvements
This patch improves the documentation for the following points:
  * Change location of supported k8s/helm/prometheus/alertmanager
    versions
  * Change location of `--os-tacker-api-version 2` in the CLI
    documentation
  * Change VIM status from `PENDING` and `REACHABLE` to `ACTIVE`
  * Change the description of `TACKER_ROOT`
  * Change `dsvm-compliance-sol-api` to `ft-v1-compliance-sol`
  * Add a description of the modules required for the VNF Package
    generation tools
  * Add a note regarding the output file of the VNF Package
    generation tools
  * Remove unnecessary spaces

Change-Id: I584e43ec3f093b0a3f63cf94bf441318ffd7fd21
2024-12-11 18:15:14 +09:00

8.0 KiB

Tacker Architecture

The following diagram shows the overview of the Tacker architecture

/_images/tacker-design.svg

Packages:

  • tacker - is the main package for Tacker project.

Components:

  • server - provides REST API and calls conductor via RPC.
  • tacker-conductor - implements all logics to operate VNF and call required drivers providing interface to NFV infrastructures.
  • VnfPm/VnfFmController - is responsible for exact actions to configure of PM/FM.
  • VnfLcmController - is responsible for exact actions to configure of LCM.
  • PrometheusPlugin - is responsible for exact actions to configure Prometheus.
  • VnfPm/VnfFmDriver - is responsible for send notification to NFVO.
  • VnfLcmDriver - is responsible for exact action to mgmt driver or infra driver.
  • MgmtDriver - is responsible for exact actions to configure VNFs.
  • InfraDriver - is responsible for exact actions to operate OpenStack or Kubernates.

APIs:

Tacker consists of three independent versions: Legacy, v1, and v2. Each version is separated by API and has the following functions.

Note

Tacker was originally designed to have both NFVO and VNFM functionalities that are now called Legacy API and the most parts have already been deprecated except for VIM Management which is left mainly for debugging purposes. ETSI NFV-SOL API, on the other hand, is a brand new design that provides Generic VNFM functionality in compliance with the ETSI NFV standard.

API versions
API type Version Function ETSI NFV-SOL Version
Legacy API Legacy VIM Management None
ESTI NFV-SOL API v1 v1 VNF Lyfecycle Management
ESTI NFV-SOL API v1 VNF Package Management
ESTI NFV-SOL API v2 v2 VNF Lyfecycle Management
ESTI NFV-SOL API v2 VNF Performance Management
ESTI NFV-SOL API v2 VNF Fault Management

(*1)The functionality related to VNF LCM Coordination in Change current VNF package complies with ETSI NFV-SOL002 3.6.1.

(*2)OAUTH2_CLIENT_CERT in SubscriptionAuthentication is compliant with ETSI NFV-SOL013 3.5.1.

Note

See Tacker Horizon User Guide details on APIs supported by Tacker Horizon.

Supported versions:

[2024.1 Caracal / 2024.2 Dalmatian]

  • Kubernetes 1.26 - is supported from 2023.2 Bobcat to 2024.2 Dalmatian.
  • Helm 3.11 - is supported from 2023.2 Bobcat to 2024.2 Dalmatian.
  • Prometheus 2.45 - is supported from 2023.2 Bobcat onwards.
  • Alertmanager 0.26 - is supported from 2023.2 Bobcat onwards.

[2025.1 Epoxy]

  • Kubernetes 1.30 - is supported from 2025.1 Epoxy onwards.
  • Helm 3.15 - is supported from 2025.1 Epoxy onwards.
  • Prometheus 2.45 - is supported from 2023.2 Bobcat onwards.
  • Alertmanager 0.26 - is supported from 2023.2 Bobcat onwards.

Tacker Service

Tacker service is composed of two main processes:

  • tacker.service
  • tacker-conductor.service

tacker.service is a web server with Web Server Gateway Interface (WSGI) waiting for the REST API calls and it passes some operations to the tacker-conductor.service via RPC. Two types of API are supported; ETSI NFV-SOL API and Legacy API.

tacker-conductor.service implements some complicated logic and operations for orchestrations and VNF managements. It is mainly responsible for ETSI NFV-SOL based API operations and communicates with OpenStack or Kubernetes VIM by the infra drivers.

ETSI NFV-SOL Tacker Implementation

Tacker ETSI NFV-SOL based implementation is described as the following:

/_images/tacker-design-etsi.svg

When a REST API call is sent to tacker-server, some simple operations are executed in tacker-server with DB queries. The others are delegated to Conductor Server via RPC, and VNF Lifecycle Driver calls appropriate infra-driver to execute the actual logics for control and management of virtualised resources.

Below is an example of resources created/configured when Openstack InfraDriver is used.

/_images/openstack_infra_driver.svg

OpenStack InfraDriver uses Nova Instance, Cinder Storage, Neutron Port, etc. as resources to configure VNFC.

And below is an example of resources created/configured when Kubernetes/Helm InfraDriver is used.

/_images/k8s_helm_infra_driver.svg

Kubernetes/Helm InfraDriver uses Pods, Containers, etc. as resources to configure VNFC. In addition to these, Volume, ConfigMap, Secret, etc. are also used as resources to configure VNF Instance.

Tacker also provides a framework to enable lifecycle hooks called mgmt-driver. See v1 Management Driver and v2 Management Driver for details.

Note

VIM Management operations such as "Register VIM" and "Update VIM" are not defined in ETSI NFV-SOL. Users may need to use Legacy Tacker or an external NFVO.

Legacy Tacker Implementation

Legacy Tacker implementation is described as the following:

/_images/tacker-design-legacy.svg

When a REST API call is sent to tacker-server, VNFM and NFVO plugins handle the request and execute connected methods in each plugin. The NFVO plugin invokes required vim-driver methods.

Warning

Legacy API features other than the VIM feature have been deprecated. So only Nfvo receives the API from the tacker-client, but Vnfm and VNFMPlugin remain because they are used by v1 VNF Lyfecycle Management.