Monday, August 23, 2021

CNF Migration for Telco..

 

This Blog discuss about possible approaches deploy Telco CNF (Container network function)

In late 2014, Telecom operators started new technological trend to implement application virtualization principles under name NFV i.e. network functions virtualization. NFV primarily implemented using OpenStack Cloud infrastructure. Under NFV framework, virtualized instance of telecom application is referred as VNF (virtual network function).

As other enterprise infrastructure are moving from virtual machines to containers, Telco providers has also started thinking about deploying CNF i.e. Container network function. Just as Openstack was cloud orchestration framework for VNFs, container orchestration framework such as  Kubernetes  can be used for CNF orchestration.

CNF Migration

There are mainly three specifications are published in providing high level architectural guidance for CNF migration:

1)   Cloud Native Task Force(CNTT)’s Reference Architecture 2 (RA-2):

CNTT RA-2 describes the high level system components and their interactions based on CNTT Reference Model and mapping them to real-world containerized components, including Kubernetes (and related) elements. One key aspect of RA-2 is to identify the relevant Kubernetes features (e.g SRIOV, CPU pinning etc) and extensions that are best used to support telecom network deployments (Ref https://cntt-n.github.io/CNTT/)

2) GSMA NG.126 Cloud Infrastructure Reference Model v1.0: This document has is based on CNTT RA2. This specification provides common set of virtual infrastructure resources details  that Telco cloud infrastructure will need to host typical VNF/CNF telco workloads.    Ref: https://www.gsma.com/newsroom/wp-content/uploads//NG.126-v1.0-1.pdf 

3)   ETSI GR NFV-IFA 029 V3.3.1 (2019-11): This specification provides the potential impact on the NFV architecture of providing "PaaS"-type capabilities and supporting VNFs which follow "cloud-native" design principles, in particular the utilization of container technologies. Ref: https://www.etsi.org/deliver/etsi_gr/NFV-IFA/001_099/029/03.03.01_60/gr_NFV-IFA029v030301p.pdf 


GSMA NG. 126  describes three approaches to deploy CNF workloads in Telco cloud (see Section 3.7 of GSMA NG. 126), as shown in figure below:

1)       a typical IaaS using VMs and a hypervisor for virtualization

2)       a CaaS on VM/hypervisor

3)       a CaaS on bare metal.



This picture can be simplified as below:



Container inside VM (Approach B)

This blog is dedicated to discuss Approach B as specified by ETSI GR NFV-IFA 029 V3.3.1 (2019-11), section 5.3.4.





Telco has spent considerable time in transforming their legacy applications to run as virtual machines. Therefor transforming from openstack based VNF to Kubernetes based CNF will not be overnight transition. Approach B (as suggested above) can provide smooth  migration roadmap for CNF deployment, for following reasons:

-      Application can be refactored for microservices using VM’s host OS. This will provide less development work compared to running directly on bare-metal.

 

-      There will no shared kernel among Telco PoDs. This will address security concerns. Each CNF can run on it’s own namespace.

 

-     Running k8 cluster on VM, will enhance portability. For example if CNF requires to run on hyperscaler such as  Azure Kuberneters Service(AKS), User can create  Azure virtual machine (VM)/k8 Node to host the CNF without worrying about underlying OS structure.

Approach B Requirements:

Requirements to implement Approach B, are as follow:

-      Telco workloads monolithic software architecture should  to be broken down into smaller microservices.

-      Those microservice should be able to be hosted as Pod, orchestrated by Kubernetes

-      Number of Pods will make up CNF( as number or VMs made VNF). Each CNF should have it’s own namespace.

-      Kubernetes PaaS/CaaS elements should be able to manage microservices for ingress/egress traffic management, log and metrics collections, state preservation by external DB, tracing, Secured communication between microservices, etc

-      K8 Node VM should have sufficient capacity to host designed CNF Pods.

-      Number of CNFs can create k8 cluster. Single k8 cluster can consist of all the pods delivering network functionality e.g UPF. Or single k8 cluster belong to particular Telco Vendor, providing multiple functionalities.  

-      Each k8 cluster will have master & worker node. Master node will host k8 PaaS services such as etcd server, istioD, kublet k8 scheduler etc Worker node will host the application pods(more details on k8 cluster : https://kubernetes.io/docs/concepts/overview/components/)


Figure below shows illustration of approach B implementation, where:

 

1)   3 Linux VMs are created to form single k8 cluster

2)   VM 1 is acting as k8 worker node, where four Pods/Microservices delivers 5G element SMF functionality. All SMF pods are running on SMF namespace.

3)   VM 2 is acting as k8 worker node, where four Pods/Microservices delivers  5G element AMF functionality. All AMF pods are running AMF  namespace.

4)   VM 3 is acting as k8 control node where four Pods/Microservices delivers  k8 control  services (e.g Etcd, kublet, kube-schedular, etc)  functionality.

5)   Microservices are interconnected via service mesh provided by Istio.

6)   Pod-level redundancy are provided by replica-set feature of Kubernetes




As I have explained, ETSI has tentatively defined three approaches for Telco’s CNF migration. We have discussed about approach where Application containers run inside host VM. In this scenario, Telco requires openstack and Kubernetes orchestration systems work in parallel.

In upcoming blogs, I will share my knowledge on CNF networking and K8 PaaS services.