blob: d07a0ad875a19db995c0c6246759bac1947dd2c7 [file] [log] [blame]
ajayd19711c2021-12-07 12:07:04 -08001..
2 SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
3 SPDX-License-Identifier: Apache-2.0
4
ajay07514982021-12-07 22:24:32 -08005.. _deployment_5G_guide:
ajayd19711c2021-12-07 12:07:04 -08006
ajay07514982021-12-07 22:24:32 -080075G Deployment Guide
8===================
ajayd19711c2021-12-07 12:07:04 -08009
10Deployment Overview
11-------------------
12SD-Core is released with Helm chart and container images.
13We recommend using **Kubernetes** and **Helm** to deploy SD-Core.
Ajay Lotan Thakurd0573072022-05-04 19:16:52 -070014SD-Core images are hosted on docker hub.
ajayd19711c2021-12-07 12:07:04 -080015
16Hardware resource requirement
17-----------------------------
18
ajayce0380c2021-12-14 21:51:00 -080019.. list-table:: CPU & Memory Requirements for 5G components
20 :widths: 5 5 5
21 :header-rows: 1
ajayd19711c2021-12-07 12:07:04 -080022
ajayce0380c2021-12-14 21:51:00 -080023 * - SD-Core Component
24 - Required CPU
25 - Required Memory in Gi
26 * - AMF
27 - 2 CPU Cores
28 - 4Gi
29 * - SMF
30 - 2 CPU Cores
31 - 4Gi
32 * - NRF
33 - 2 CPU Cores
34 - 1Gi
35 * - NSSF
36 - 2 CPU Cores
37 - 1Gi
38 * - AUSF
39 - 1 CPU Cores
40 - 1Gi
41 * - PCF
42 - 1 CPU Cores
43 - 1Gi
44 * - UDR
45 - 2 CPU Cores
46 - 1Gi
47 * - UDM
48 - 2 CPU Cores
49 - 1Gi
50 * - Config5G(webconsole)
51 - 1 CPU Cores
52 - 1Gi
53 * - SimApp
54 - 1 CPU Cores
55 - 1Gi
56 * - MongoDB
57 - 2 CPU Cores
58 - 4Gi
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -060059 * - UPF-Adapter
60 - 1 CPU Cores
61 - 1Gi
62 * - SCTP Load Balancer
63 - 1 CPU Cores
64 - 1Gi
ajayd19711c2021-12-07 12:07:04 -080065
Ajay Lotan Thakur05ce5ce2022-09-25 20:36:16 -070066.. note::
67 SD-Core deployment is tested on Intel/AMD hardware. There is WIP to run SD-Core
68 on ARM architecture.
69
ajayd19711c2021-12-07 12:07:04 -080070Deployment Options
71------------------
72
73Development Environments
74""""""""""""""""""""""""
75
ajayce0380c2021-12-14 21:51:00 -080076Please refer (see :ref:`aiab-guide`) to setup 5G development environment.
ajayd19711c2021-12-07 12:07:04 -080077
ajayd19711c2021-12-07 12:07:04 -080078Production Environments - 5G
79""""""""""""""""""""""""""""
80
81To install SD-Core into your Kubernetes cluster, follow instructions
82
83Step1 - Clone SD-Core 5G Helm chart
84'''''''''''''''''''''''''''''''''''
85.. code-block::
86
ajaycbd17062022-03-06 11:12:58 -080087 git clone "https://gerrit.opencord.org/sdcore-helm-charts"
ajayd19711c2021-12-07 12:07:04 -080088 cd sdcore-helm-charts/sdcore-helm-charts/
89 helm dep update #Update Helm dependencies
90
91Step2 - Prepare your Helm value for 5G
92''''''''''''''''''''''''''''''''''''''
93
94You can modify existing values.yaml directly, but we recommend composing another value
95file myvalues.yaml using values.yaml as an example. We are highlighting a few things we
96need to modify here. More explanation of the supported Helm values can be found in the
97Configuration section below.
98
99Step3 - Install 5G using SD-Core umbrella helm chart
100''''''''''''''''''''''''''''''''''''''''''''''''''''
101
ajaycbd17062022-03-06 11:12:58 -0800102The following command will deploy the SD-Core helm chart with release name sdcore-5g in the sdcore-5g namespace.
ajayd19711c2021-12-07 12:07:04 -0800103
104.. code-block::
105
ajaycbd17062022-03-06 11:12:58 -0800106 helm install -n sdcore-5g --create-namespace -f myvalues.yaml sdcore-5g ~/cord/sdcore-helm-charts/sdcore-helm-charts
ajayd19711c2021-12-07 12:07:04 -0800107
108To verify the installation:
109
110.. code-block::
111
112 helm -n sdcore-5g ls
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600113 xxxx@node:~$ helm -n sdcore-5g ls
ajaycbd17062022-03-06 11:12:58 -0800114 NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
115 sdcore-5g sdcore-5g 1 2022-03-05 16:25:32.338495035 -0700 MST deployed sd-core-0.10.9
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600116 xxxx@node:~$
ajaycbd17062022-03-06 11:12:58 -0800117
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600118 xxxx@node:~$ kubectl get pods -n sdcore-5g
119 NAME READY STATUS RESTARTS AGE
120 amf-6cddb6ff5-g5kwp 1/1 Running 0 8d
121 ausf-64fb5c5df5-g9xps 1/1 Running 0 8d
122 gnbsim-0 1/1 Running 0 8d
123 mongodb-0 1/1 Running 0 8d
124 mongodb-1 1/1 Running 0 8d
125 mongodb-arbiter-0 1/1 Running 0 8d
126 nrf-69794885b-pgl8f 1/1 Running 0 8d
127 nssf-fc9c48c89-dxqn7 1/1 Running 0 8d
128 pcf-5c7d7767c9-wv6dl 1/1 Running 0 8d
129 simapp-669b99db9d-lbbm4 1/1 Running 0 8d
130 smf-b87fc6f8f-4jdqr 1/1 Running 0 8d
131 smf-b87fc6f8f-xt2n2 1/1 Running 0 8d
132 udm-f948b57dc-n5b4h 1/1 Running 0 8d
133 udr-698445bd87-8ptpm 1/1 Running 0 8d
134 upf-0 5/5 Running 0 8d
135 upf-adapter-c4844b7fb-wqbvw 1/1 Running 0 8d
136 webui-8cfb9659c-hqfp9 1/1 Running 0 8d
137 xxxx@node:~$
ajayd19711c2021-12-07 12:07:04 -0800138
139To uninstall:
140
141.. code-block::
142
143 helm -n sdcore-5g uninstall sdcore-5g
144 kubectl delete namespace sdcore-5g # also remove the sdcore-5g if needed
145
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600146Cloud Native Configuration - 5G
147""""""""""""""""""""""""""""""""
ajayd19711c2021-12-07 12:07:04 -0800148
Ankur Upadhyaya4efce0a2022-10-07 11:12:08 -0600149Following configuration need to be enabled in 5G helm values override file.
150It is important to understand usage of following flags
151
152- **SCTP Load Balancer** :
153 Enable this flag to introduce SCTP Load Balancer between gNBs and multiple AMF instances
154 to load balance sctp connections across multiple AMF instances.
155
156- **DB Store** :
157 Enable this flag to preserve AMF context or SMF PDU session into Database.
158 This is required for any AMF/SMF instance to load session/context of any
159 other instance which being fault recovered.
160
161- **UPF-Adapter** :
162 Enable this flag to introduce UPF-Adapter between multiple SMF instances
163 and UPF. This required for the case where UPF doesn't support multiple
164 SMF association with same pfcp node-id.
165
166- **NRF Keep-Alive** :
167 Enable this flag for NRF to maintain multiple NF profiles and trigger periodic
168 profile updates from the registered NFs.
169
170- **UE IP-Address alloc via UPF** :
171 Enable this flag to get UE IP-Address allocated via UPF rather than locally by SMF.
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600172
173Enable AMF Sctp Load Balancer
174'''''''''''''''''''''''''''''
175Edit sd-core-5g-values.yaml as following
176
177.. code-block::
178
179 sctplb:
180 deploy: true
181
Ankur Upadhyaya4efce0a2022-10-07 11:12:08 -0600182Enable AMF DB Store
183'''''''''''''''''''
184Edit sd-core-5g-values.yaml as following
185
186.. code-block::
187
188 amf:
189 cfgFiles:
190 amfcfg.conf:
191 configuration:
192 enableDBStore: true
193
Ankur Upadhyaya4f0e3b02022-10-06 11:15:39 -0600194Enable SMF DB Store
195'''''''''''''''''''
196Edit sd-core-5g-values.yaml as following
197
198.. code-block::
199
200 smf:
201 cfgFiles:
202 smfcfg.conf:
203 configuration:
204 enableDBStore: true
205
206Enable UPF-Adapter
207''''''''''''''''''
208Edit sd-core-5g-values.yaml as following
209
210.. code-block::
211
212 upfadapter:
213 deploy: true
214
215Enable NRF Keep-Alive
216''''''''''''''''''''''
217Edit sd-core-5g-values.yaml as following
218
219.. code-block::
220
221 nrf:
222 cfgFiles:
223 nrfcfg.conf:
224 configuration:
225 mongoDBStreamEnable: false
226 nfProfileExpiryEnable: true
227 nfKeepAliveTime: 60
228
229Enable UE IP-Address allocation by UPF
230''''''''''''''''''''''''''''''''''''''
231This is optional feature to allocate UE IP-Address via UPF rather than locally via SMF.
232Edit sd-core-5g-values.yaml as following
233
234.. code-block::
235
236 cpiface:
237 dnn: "internet"
238 hostname: "upf"
239 enable_ue_ip_alloc: true
240 ue_ip_pool: "172.250.0.0/16"