Tacker 架构

下图显示了 Tacker 架构的概述

../_images/tacker-design.svg

软件包

  • tacker - 是 Tacker 项目的主要软件包。

组件

  • server - 提供 REST API 并通过 RPC 调用 conductor。

  • tacker-conductor - 实现所有操作 VNF 的逻辑,并调用所需的驱动程序,为 NFV 基础设施提供接口。

  • VnfPm/VnfFmController - 负责配置 PM/FM 的具体操作。

  • VnfLcmController - 负责配置 LCM 的具体操作。

  • PrometheusPlugin - 负责配置 Prometheus 的具体操作。

  • VnfPm/VnfFmDriver - 负责向 NFVO 发送通知。

  • VnfLcmDriver - 负责对 mgmt 驱动程序或 infra 驱动程序执行具体操作。

  • MgmtDriver - 负责配置 VNFs 的具体操作。

  • InfraDriver - 负责操作 OpenStack 或 Kubernates 的具体操作。

API

Tacker 包含三个独立的版本:Legacy、v1 和 v2。每个版本通过 API 分隔,并具有以下功能。

注意

Tacker 最初设计为同时具有 NFVO 和 VNFM 功能,现在称为 Legacy API,其中大部分功能已被弃用,仅保留 VIM 管理,主要用于调试目的。另一方面,ETSI NFV-SOL API 是一种全新的设计,它提供符合 ETSI NFV 标准的通用 VNFM 功能。

API 版本

API 类型

版本

Function

ETSI NFV-SOL 版本

Legacy API

Legacy

VIM 管理

ESTI NFV-SOL API

v1

v1 VNF 生命周期管理

ESTI NFV-SOL API

v1

VNF 包管理

ESTI NFV-SOL API

v2

v2 VNF 生命周期管理

ESTI NFV-SOL API

v2

VNF 性能管理

ESTI NFV-SOL API

v2

VNF 故障管理

(*1)与更改当前 VNF 包相关的 VNF LCM 协调功能符合 ETSI NFV-SOL002 3.6.1

(*2)SubscriptionAuthentication 中的 OAUTH2_CLIENT_CERT 符合 ETSI NFV-SOL013 3.5.1

注意

有关 Tacker Horizon 支持的 API 的详细信息,请参阅 Tacker Horizon 用户指南

支持的版本

[2024.1 Caracal / 2024.2 Dalmatian]

  • Kubernetes 1.26 - 从 2023.2 Bobcat 到 2024.2 Dalmatian 得到支持。

  • Helm 3.11 - 从 2023.2 Bobcat 到 2024.2 Dalmatian 得到支持。

  • Prometheus 2.45 - 从 2023.2 Bobcat 开始得到支持。

  • Alertmanager 0.26 - 从 2023.2 Bobcat 开始得到支持。

[2025.1 Epoxy]

  • Kubernetes 1.30 - 从 2025.1 Epoxy 开始得到支持。

  • Helm 3.15 - 从 2025.1 Epoxy 开始得到支持。

  • Prometheus 2.45 - 从 2023.2 Bobcat 开始得到支持。

  • Alertmanager 0.26 - 从 2023.2 Bobcat 开始得到支持。

Tacker 服务

Tacker 服务由两个主要进程组成

  • tacker.service

  • tacker-conductor.service

tacker.service 是一个 Web 服务器,带有 Web 服务器网关接口 (WSGI),等待 REST API 调用,并通过 RPC 将一些操作传递给 tacker-conductor.service。支持两种类型的 API;ETSI NFV-SOL API 和 Legacy API。

tacker-conductor.service 实现一些复杂的逻辑和操作,用于编排和 VNF 管理。它主要负责基于 ETSI NFV-SOL 的 API 操作,并通过 infra 驱动程序与 OpenStack 或 Kubernetes VIM 进行通信。

ETSI NFV-SOL Tacker 实现

Tacker 基于 ETSI NFV-SOL 的实现如下所述

../_images/tacker-design-etsi.svg

当将 REST API 调用发送到 tacker-server 时,tacker-server 中会执行一些简单的操作,并进行 DB 查询。其他操作将通过 RPC 委托给 Conductor Server,然后 VNF 生命周期驱动程序 调用适当的 infra 驱动程序来执行虚拟化资源控制和管理的实际逻辑。

以下是使用 Openstack InfraDriver 时创建/配置的资源示例。

../_images/openstack_infra_driver.svg

OpenStack InfraDriver 使用 Nova 实例、Cinder 存储、Neutron 端口等资源来配置 VNFC。

以下是使用 Kubernetes/Helm InfraDriver 时创建/配置的资源示例。

../_images/k8s_helm_infra_driver.svg

Kubernetes/Helm InfraDriver 使用 Pod、容器等资源来配置 VNFC。除此之外,Volume、ConfigMap、Secret 等也用作资源来配置 VNF 实例。

Tacker 还提供了一个框架来启用名为 mgmt-driver 的生命周期钩子。有关详细信息,请参阅 v1 管理驱动程序v2 管理驱动程序

注意

诸如“注册 VIM”和“更新 VIM”之类的 VIM 管理操作未在 ETSI NFV-SOL 中定义。用户可能需要使用 Legacy Tacker 或外部 NFVO。

Legacy Tacker 实现

Legacy Tacker 实现如下所述

../_images/tacker-design-legacy.svg

当将 REST API 调用发送到 tacker-server 时,VNFM 和 NFVO 插件处理请求并在每个插件中执行连接的方法。NFVO 插件调用所需的 vim-driver 方法。

警告

除 VIM 功能以外的 Legacy API 功能已被弃用。因此,只有 Nfvo 接收来自 tacker-client 的 API,但 Vnfm 和 VNFMPlugin 仍然存在,因为它们由 v1 VNF 生命周期管理使用。