blob: d07a0ad875a19db995c0c6246759bac1947dd2c7 [file] [log] [blame]
..
SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
SPDX-License-Identifier: Apache-2.0
.. _deployment_5G_guide:
5G Deployment Guide
===================
Deployment Overview
-------------------
SD-Core is released with Helm chart and container images.
We recommend using **Kubernetes** and **Helm** to deploy SD-Core.
SD-Core images are hosted on docker hub.
Hardware resource requirement
-----------------------------
.. list-table:: CPU & Memory Requirements for 5G components
:widths: 5 5 5
:header-rows: 1
* - SD-Core Component
- Required CPU
- Required Memory in Gi
* - AMF
- 2 CPU Cores
- 4Gi
* - SMF
- 2 CPU Cores
- 4Gi
* - NRF
- 2 CPU Cores
- 1Gi
* - NSSF
- 2 CPU Cores
- 1Gi
* - AUSF
- 1 CPU Cores
- 1Gi
* - PCF
- 1 CPU Cores
- 1Gi
* - UDR
- 2 CPU Cores
- 1Gi
* - UDM
- 2 CPU Cores
- 1Gi
* - Config5G(webconsole)
- 1 CPU Cores
- 1Gi
* - SimApp
- 1 CPU Cores
- 1Gi
* - MongoDB
- 2 CPU Cores
- 4Gi
* - UPF-Adapter
- 1 CPU Cores
- 1Gi
* - SCTP Load Balancer
- 1 CPU Cores
- 1Gi
.. note::
SD-Core deployment is tested on Intel/AMD hardware. There is WIP to run SD-Core
on ARM architecture.
Deployment Options
------------------
Development Environments
""""""""""""""""""""""""
Please refer (see :ref:`aiab-guide`) to setup 5G development environment.
Production Environments - 5G
""""""""""""""""""""""""""""
To install SD-Core into your Kubernetes cluster, follow instructions
Step1 - Clone SD-Core 5G Helm chart
'''''''''''''''''''''''''''''''''''
.. code-block::
git clone "https://gerrit.opencord.org/sdcore-helm-charts"
cd sdcore-helm-charts/sdcore-helm-charts/
helm dep update #Update Helm dependencies
Step2 - Prepare your Helm value for 5G
''''''''''''''''''''''''''''''''''''''
You can modify existing values.yaml directly, but we recommend composing another value
file myvalues.yaml using values.yaml as an example. We are highlighting a few things we
need to modify here. More explanation of the supported Helm values can be found in the
Configuration section below.
Step3 - Install 5G using SD-Core umbrella helm chart
''''''''''''''''''''''''''''''''''''''''''''''''''''
The following command will deploy the SD-Core helm chart with release name sdcore-5g in the sdcore-5g namespace.
.. code-block::
helm install -n sdcore-5g --create-namespace -f myvalues.yaml sdcore-5g ~/cord/sdcore-helm-charts/sdcore-helm-charts
To verify the installation:
.. code-block::
helm -n sdcore-5g ls
xxxx@node:~$ helm -n sdcore-5g ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
sdcore-5g sdcore-5g 1 2022-03-05 16:25:32.338495035 -0700 MST deployed sd-core-0.10.9
xxxx@node:~$
xxxx@node:~$ kubectl get pods -n sdcore-5g
NAME READY STATUS RESTARTS AGE
amf-6cddb6ff5-g5kwp 1/1 Running 0 8d
ausf-64fb5c5df5-g9xps 1/1 Running 0 8d
gnbsim-0 1/1 Running 0 8d
mongodb-0 1/1 Running 0 8d
mongodb-1 1/1 Running 0 8d
mongodb-arbiter-0 1/1 Running 0 8d
nrf-69794885b-pgl8f 1/1 Running 0 8d
nssf-fc9c48c89-dxqn7 1/1 Running 0 8d
pcf-5c7d7767c9-wv6dl 1/1 Running 0 8d
simapp-669b99db9d-lbbm4 1/1 Running 0 8d
smf-b87fc6f8f-4jdqr 1/1 Running 0 8d
smf-b87fc6f8f-xt2n2 1/1 Running 0 8d
udm-f948b57dc-n5b4h 1/1 Running 0 8d
udr-698445bd87-8ptpm 1/1 Running 0 8d
upf-0 5/5 Running 0 8d
upf-adapter-c4844b7fb-wqbvw 1/1 Running 0 8d
webui-8cfb9659c-hqfp9 1/1 Running 0 8d
xxxx@node:~$
To uninstall:
.. code-block::
helm -n sdcore-5g uninstall sdcore-5g
kubectl delete namespace sdcore-5g # also remove the sdcore-5g if needed
Cloud Native Configuration - 5G
""""""""""""""""""""""""""""""""
Following configuration need to be enabled in 5G helm values override file.
It is important to understand usage of following flags
- **SCTP Load Balancer** :
Enable this flag to introduce SCTP Load Balancer between gNBs and multiple AMF instances
to load balance sctp connections across multiple AMF instances.
- **DB Store** :
Enable this flag to preserve AMF context or SMF PDU session into Database.
This is required for any AMF/SMF instance to load session/context of any
other instance which being fault recovered.
- **UPF-Adapter** :
Enable this flag to introduce UPF-Adapter between multiple SMF instances
and UPF. This required for the case where UPF doesn't support multiple
SMF association with same pfcp node-id.
- **NRF Keep-Alive** :
Enable this flag for NRF to maintain multiple NF profiles and trigger periodic
profile updates from the registered NFs.
- **UE IP-Address alloc via UPF** :
Enable this flag to get UE IP-Address allocated via UPF rather than locally by SMF.
Enable AMF Sctp Load Balancer
'''''''''''''''''''''''''''''
Edit sd-core-5g-values.yaml as following
.. code-block::
sctplb:
deploy: true
Enable AMF DB Store
'''''''''''''''''''
Edit sd-core-5g-values.yaml as following
.. code-block::
amf:
cfgFiles:
amfcfg.conf:
configuration:
enableDBStore: true
Enable SMF DB Store
'''''''''''''''''''
Edit sd-core-5g-values.yaml as following
.. code-block::
smf:
cfgFiles:
smfcfg.conf:
configuration:
enableDBStore: true
Enable UPF-Adapter
''''''''''''''''''
Edit sd-core-5g-values.yaml as following
.. code-block::
upfadapter:
deploy: true
Enable NRF Keep-Alive
''''''''''''''''''''''
Edit sd-core-5g-values.yaml as following
.. code-block::
nrf:
cfgFiles:
nrfcfg.conf:
configuration:
mongoDBStreamEnable: false
nfProfileExpiryEnable: true
nfKeepAliveTime: 60
Enable UE IP-Address allocation by UPF
''''''''''''''''''''''''''''''''''''''
This is optional feature to allocate UE IP-Address via UPF rather than locally via SMF.
Edit sd-core-5g-values.yaml as following
.. code-block::
cpiface:
dnn: "internet"
hostname: "upf"
enable_ue_ip_alloc: true
ue_ip_pool: "172.250.0.0/16"