本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本主题介绍一些基本概念,可帮助您开始使用 AWS TNB。
网络功能的生命周期
AWS TNB 在网络功能的整个生命周期中为您提供帮助。网络功能生命周期包括以下阶段和活动:
- 规划
-
-
通过确定要部署的网络功能来规划您的网络。
-
将网络功能软件映像放入容器映像存储库中。
-
创建要部署或升级的 CSAR 包。
-
使用 AWS TNB 上传定义您的网络功能的 CSAR 包(例如 CU AMF 和 UPF),并与持续集成和持续交付 (CI/CD) 管道集成,该管道可以帮助您在新的网络功能软件映像或客户脚本可用时创建 CSAR 包的新版本。
-
- 配置
-
-
确定部署所需的信息,例如计算类型、网络功能版本、IP 信息和资源名称。
-
使用这些信息创建网络服务描述文件(NSD)。
-
载入 NSDs 定义您的网络功能和网络功能实例化所需的资源。
-
- 实例化
-
-
创建网络功能所需的基础设施。
-
按照 NSD 中的定义对网络功能进行实例化(或预置),然后开始传输流量。
-
验证资产。
-
- 生产
-
在网络功能的生命周期中,您会执行一系列生产操作,例如:
-
更新网络功能配置,例如,更新已部署的网络功能中的值。
-
使用新的网络包和参数值更新网络实例。例如,更新网络包中的 Amazon EKS
version
参数。
-
使用标准化接口
AWS TNB 与符合欧洲电信标准协会 (ETSI) 标准的服务协调器集成,使您能够简化网络服务的部署。服务协调器可以使用 AWS TNB SDKs、CLI 或 the APIs 来启动操作,例如实例化网络功能或将网络功能升级到新版本。
AWS TNB 支持以下规格。
适用于 AWS TNB 的网络功能包
使用 AWS TNB,您可以将符合 ETSI SOL001/SOL004 的网络功能包存储到函数目录中。然后,您可以上传包含描述网络功能的构件的云服务存档(CSAR)包。
-
网络功能描述文件 – 定义用于包加载和网络功能管理的元数据
-
软件映像 – 引用网络功能容器映像。Amazon Elastic Container Registry(Amazon ECR)可用作网络功能映像存储库。
-
其它文件 – 用于管理网络功能;例如,脚本和 Helm 图表。
CSAR 是一个由 OASIS TOSCA 标准定义的软件包,包括一个符合 OASIS TOSCA YAML 规范的网络/服务描述符。有关所需的 YAML 规范的信息,请参阅TNB 的 TOSCA 参考文献 AWS。
以下是网络功能描述文件的示例。
tosca_definitions_version: tnb_simple_yaml_1_0
topology_template:
node_templates:
SampleNF:
type: tosca.nodes.AWS.VNF
properties:
descriptor_id: "SampleNF-descriptor-id"
descriptor_version: "2.0.0"
descriptor_name: "NF 1.0.0"
provider: "SampleNF"
requirements:
helm: HelmChart
HelmChart:
type: tosca.nodes.AWS.Artifacts.Helm
properties:
implementation: "./SampleNF"
TNB 的网络服务描述符 AWS
AWS TNB 存储有关您要部署的网络功能以及如何将其部署到目录中的网络服务描述符 (NSDs)。你可以按照 ETSI SOL007 的描述上传你的 YAML NSD 文件 (vnfd.yaml
),以包含以下信息:
-
要部署的网络功能
-
联网指令
-
计算指令
-
生命周期挂钩(自定义脚本)
AWS TNB 支持使用 TOSCA 语言对网络、服务和功能等资源进行建模的 ETSI 标准。 AWS TNB 以符合 ETSI 标准的服务 AWS 服务 协调器可以理解的方式对其进行建模,从而提高您的使用效率。
以下是展示如何建模的 NSD 片段。 AWS 服务网络功能将部署在使用 Kubernetes 版本 1.27 的 Amazon EKS 集群上。应用程序的子网是 Subnet01 和 Subnet02。然后,您可以使用 Amazon 系统映像 (AMI)、实例类型和自动扩展配置为您的应用程序定义。 NodeGroups
tosca_definitions_version: tnb_simple_yaml_1_0
SampleNFEKS:
type: tosca.nodes.AWS.Compute.EKS
properties:
version: "1.27"
access: "ALL"
cluster_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleClusterRole
"
capabilities:
multus:
properties:
enabled: true
requirements:
subnets:
- Subnet01
- Subnet02
SampleNFEKSNode01:
type: tosca.nodes.AWS.Compute.EKSManagedNode
properties:
node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleNodeRole
"
capabilities:
compute:
properties:
ami_type: "AL2_x86_64"
instance_types:
- "t3.xlarge"
key_pair: "SampleKeyPair"
scaling:
properties:
desired_size: 3
min_size: 2
max_size: 6
requirements:
cluster: SampleNFEKS
subnets:
- Subnet01
network_interfaces:
- ENI01
- ENI02
AWS TNB 的管理和运营
借 AWS 助 TNB,您可以使用符合 ETSI SOL003 和 SOL005 的标准化管理操作来管理您的网络。您可以使用 AWS TNB APIs 执行生命周期操作,例如:
-
实例化网络功能。
-
终止网络功能。
-
更新网络功能以覆盖 Helm 部署。
-
使用新的网络包和参数值更新实例化或更新的网络实例。
-
管理网络功能包的版本。
-
管理您的版本 NSDs.
-
检索有关您部署的网络功能的信息。
TNB 的网络服务描述符 AWS
网络服务描述文件(NSD)是网络包中的一个 .yaml
文件,它使用 TOSCA 标准来描述要部署的网络功能以及要在其上部署网络功能的 AWS
基础架构。要定义您的 NSD 并配置底层资源和网络生命周期操作,您必须了解 TNB 支持的 NSD TOSCA 架构。 AWS
NSD 文件分为以下几个部分:
-
TOSCA 定义版本 – 这是 NSD YAML 文件的第一行,包含版本信息,如以下示例所示。
tosca_definitions_version: tnb_simple_yaml_1_0
-
VNFD – NSD 包含要在其上执行生命周期操作的网络功能的定义。必须使用以下值来标识每个网络功能:
用于
descriptor_id
的唯一 ID。该 ID 必须与网络功能 CSAR 包中的 ID 相匹配。用于
namespace
的唯一名称。该名称必须与唯一 ID 相关联,以便在整个 NSD YAML 文件中更容易引用,如以下示例所示。
vnfds: - descriptor_id: "61465757-cb8f-44d8-92c2-b69ca0de025b" namespace: "amf"
-
拓扑模板 – 定义要部署的资源、网络功能部署以及任何自定义脚本,例如生命周期挂钩。如以下示例所示。
topology_template: node_templates: SampleNS: type: tosca.nodes.AWS.NS properties: descriptor_id: "<Sample Identifier>" descriptor_version: "<Sample nversion>" descriptor_name: "<Sample name>"
-
其它节点 – 每个建模的资源都有属性和要求部分。属性部分描述了资源的可选或必备属性,例如版本。要求部分描述了必须作为参数提供的依赖项。例如,要创建 Amazon EKS 节点组资源,必须在 Amazon EKS 集群中创建该资源。如以下示例所示。
SampleEKSNode: type: tosca.nodes.AWS.Compute.EKSManagedNode properties: node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/
SampleRole
" capabilities: compute: properties: ami_type: "AL2_x86_64" instance_types: - "t3.xlarge" key_pair: "SampleKeyPair" scaling: properties: desired_size: 1 min_size: 1 max_size: 1 requirements: cluster: SampleEKS subnets: - SampleSubnet network_interfaces: - SampleENI01 - SampleENI02