This content originally appeared on Level Up Coding - Medium and was authored by Christopher Adigun
This blog post shows how to deploy an opensource 5G core with service mesh on Kubernetes.
N.B — Some familiarity with kubernetes and telecommunication is assumed.
Components:
- Kubernetes v1.21
- Calico CNI
- Open5gs 5G Core
- Linkerd stable-2.10.0
- Helm v3
- UERANSIM v3.1.4 (gNB and UE simulator)
The service mesh makes this interesting because the 5G components SBI are http2 traffic, in order they can be treated like any other http application (service routing, circuit-breaking, etc). The only exception to this is the UPF which only uses GTP-U and PFCP. This means that UPF will not have a linked proxy side-car.
Deployment Steps:
- Create a kubernetes cluster (kubespray, rancher, eks, gke etc).
- Install Linkerd in the kubernetes cluster:
linkerd install | kubectl apply -f -
linkerd viz install | kubectl apply -f - # on-cluster metrics stack
3. Clone git repo: https://bitbucket.org/infinitydon/opensource-5g-core-service-mesh.git
4. The helm chart is simple, you can leave the default values as it is or change some of the parameters like mnc, mcc etc.
5. Install the open5gs 5G core:
## Create the namespace with linkerd auto injection
kubectl create -f namespace.yaml
## Install open5gs 5G helm chart
helm -n open5gs install -f values.yaml 5gcore ./
6. Status of some of the components:
UE and gNB Test:
- Create a subscriber in the open5gs web-ui, you can use port-forwarding to access the pod
- Install UERANSIM in a separate VM and configure the necessary parameters.
- Output of gNB and UE status:
UE has been able to register with the 5G core successfully.
Now let us see the status of the Linkerd service mesh statistics:
In summary, I am excited to see the Telecommunication stacks with possibility of using enterprise technology stacks. With a service mesh like Linkerd further configurations like service routing can be done using the SBI. It will be very interesting when we start seeing the implementation of the Service Communications Proxy (which is essentially what a service mesh does).
References:
- https://github.com/open5gs/open5gs
- https://linkerd.io/2.10/getting-started/
- https://github.com/aligungr/UERANSIM/wiki/Installation
P.S — If you want to learn about baremetal/on-prem kubernetes networking in depth using technologies like Multus, SR-IOV, Multiple network interfaces in pods etc then you can check my course on Udemy (you can use coupon code BARE_K8S_DST to get a discount):
Opensource 5G Core With Service Mesh was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Level Up Coding - Medium and was authored by Christopher Adigun
Christopher Adigun | Sciencx (2021-03-30T17:01:03+00:00) Opensource 5G Core With Service Mesh. Retrieved from https://www.scien.cx/2021/03/30/opensource-5g-core-with-service-mesh/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.