Tacker 架构¶
下图显示了 Tacker 架构的概述
软件包
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 类型 |
版本 |
Function |
ETSI NFV-SOL 版本 |
|---|---|---|---|
Legacy API |
Legacy |
无 |
|
ESTI NFV-SOL API |
v1 |
||
ESTI NFV-SOL API |
v1 |
||
ESTI NFV-SOL API |
v2 |
||
ESTI NFV-SOL API |
v2 |
||
ESTI NFV-SOL API |
v2 |
(*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 的实现如下所述
当将 REST API 调用发送到 tacker-server 时,tacker-server 中会执行一些简单的操作,并进行 DB 查询。其他操作将通过 RPC 委托给 Conductor Server,然后 VNF 生命周期驱动程序 调用适当的 infra 驱动程序来执行虚拟化资源控制和管理的实际逻辑。
以下是使用 Openstack InfraDriver 时创建/配置的资源示例。
OpenStack InfraDriver 使用 Nova 实例、Cinder 存储、Neutron 端口等资源来配置 VNFC。
以下是使用 Kubernetes/Helm InfraDriver 时创建/配置的资源示例。
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 实现如下所述
当将 REST API 调用发送到 tacker-server 时,VNFM 和 NFVO 插件处理请求并在每个插件中执行连接的方法。NFVO 插件调用所需的 vim-driver 方法。
警告
除 VIM 功能以外的 Legacy API 功能已被弃用。因此,只有 Nfvo 接收来自 tacker-client 的 API,但 Vnfm 和 VNFMPlugin 仍然存在,因为它们由 v1 VNF 生命周期管理使用。