本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本主題說明協助您開始使用 AWS TNB 的基本概念。
網路函數的生命週期
AWS TNB 會在網路函數的整個生命週期中協助您。網路函數生命週期包含下列階段和活動:
- 規劃
-
-
透過識別要部署的網路函數來規劃您的網路。
-
將網路函數軟體映像放入容器映像儲存庫。
-
建立要部署或升級的 CSAR 套件。
-
使用 AWS TNB 上傳定義網路函數 (例如 CU AMF 和 UPF) 的 CSAR 套件,並與持續整合和持續交付 (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 是由 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"
AWS TNB 的網路服務描述項
AWS TNB 會儲存網路服務描述項 (NSDs),其中包含您要部署的網路函數,以及您要如何將它們部署到目錄中。您可以上傳您的 YAML NSD 檔案 (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,您可以根據 ETSI SOL003 和 SOL005,使用標準化管理操作來管理網路。您可以使用 AWS TNB APIs 來執行生命週期操作,例如:
-
執行個體化您的網路函數。
-
終止您的網路函數。
-
更新您的網路函數以覆寫 Helm 部署。
-
使用新的網路套件和參數值更新執行個體化或更新的網路執行個體。
-
管理網路函數套件的版本。
-
管理 NSDs的版本。
-
擷取已部署網路函數的相關資訊。
AWS TNB 的網路服務描述項
網路服務描述項 (NSD) 是網路套件中的.yaml
檔案,使用 TOSCA 標準來描述您要部署的網路函數,以及 AWS 您要部署網路函數的基礎設施。若要定義 NSD 並設定基礎資源和網路生命週期操作,您必須了解 AWS TNB 支援的 NSD TOSCA 結構描述。
您的 NSD 檔案分為下列部分:
-
TOSCA 定義版本 – 這是 NSD YAML 檔案的第一行,包含版本資訊,如下列範例所示。
tosca_definitions_version: tnb_simple_yaml_1_0
-
VNFD – NSD 包含執行生命週期操作的網路函數定義。每個網路函數都必須以下列值識別:
的唯一 ID
descriptor_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