本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS TNB 概念
本主題說明協助您開始使用 的基本概念 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或 APIs來啟動操作,例如初始化或將網路函數升級至新版本。
AWS TNB 支援下列規格。
的網路函數套件 AWS TNB
使用 AWS TNB,您可以將符合 ETSI SOL001/SOL004 的網路函數套件存放在函數目錄中。然後,您可以上傳包含描述網路函數成品的 Cloud Service Archive (CSAR) 套件。
-
網路函數描述詞 – 定義套件加入和網路函數管理的中繼資料
-
軟體映像 – 參考網路函數容器映像。Amazon Elastic Container Registry (Amazon ECR) 可以充當網路函數映像儲存庫。
-
其他檔案 – 用於管理網路函數,例如指令碼和 Helm Chart。
CSAR 是由 OASISTOSCA標準定義的套件,包含符合 OASISTOSCAYAML規格的網路/服務描述詞。如需所需YAML規格的資訊,請參閱 TOSCA 的參考 AWS TNB。
以下是範例網路函數描述符。
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"
的網路服務描述符 AWS TNB
AWS TNB 會將網路服務描述符 (NSDs) 存放在您要部署的網路函數,以及您要如何將它們部署到目錄中。您可以上傳YAMLNSD檔案 (vnfd.yaml
),如 ETSI SOL007 所述,包含下列資訊:
-
您要部署的網路函數
-
網路指示
-
運算指示
-
生命週期掛鉤 (自訂指令碼)
AWS TNB 支援以TOSCA語言建立資源模型ETSI的標準,例如網路、服務和函數。 AWS TNB AWS 服務 可讓您以 ETSI合規服務協調者可以理解的方式建立資源模型,進而更有效率地使用它們。
以下是 的程式碼片段,NSD示範如何建立 模型 AWS 服務。網路函數將部署在具有 Kubernetes 1.27 版的 Amazon EKS叢集上。應用程式子網路為 Subnet01 和 Subnet02。然後,您可以使用 Amazon Machine Image (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,您可以使用標準化管理操作來管理網路,方法為 SOL003 ETSI 和 SOL005。您可以使用 AWS TNBAPIs來執行生命週期操作,例如:
-
讓您的網路函數變得具現化。
-
終止您的網路函數。
-
更新您的網路函數以覆寫 Helm 部署。
-
使用新的網路套件和參數值更新具現化或更新的網路執行個體。
-
管理網路函數套件的版本。
-
管理 的版本NSDs。
-
擷取已部署網路函數的相關資訊。
的網路服務描述符 AWS TNB
網路服務描述詞 (NSD) 是網路套件中的.yaml
檔案,使用 TOSCA標準來描述您要部署的網路函數,以及 AWS 您要部署網路函數的基礎設施。若要定義您的 NSD並設定基礎資源和網路生命週期操作,您必須了解 支援的NSDTOSCA結構描述 AWS TNB。
您的NSD檔案分為下列部分:
-
TOSCA 定義版本 – 這是NSDYAML檔案的第一行,包含版本資訊,如下列範例所示。
tosca_definitions_version: tnb_simple_yaml_1_0
-
VNFD – NSD包含要在其中執行生命週期操作的網路函數定義。每個網路函數都必須以下列值識別:
的唯一 ID
descriptor_id
。ID 必須與網路函數CSAR套件中的 ID 相符。的唯一名稱
namespace
。名稱必須與唯一 ID 相關聯,以便更輕鬆地參考整個NSDYAML檔案,如下列範例所示。
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 Node Group Resource,必須在 Amazon EKS Cluster 中建立。如以下範例所示。
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