2 Deployment Environment

This section provides information about the cloud native platform requirements for deploying Oracle Communications Cloud Native Core, Network Slice Selection Function (NSSF).

Note:

The performance and capacity of the NSSF system may vary based on the call model, Feature or Interface configuration, and underlying CNE and hardware environment.

2.1 Deployed Components

This section provides details about the deployed components.

2.1.1 Hardware Details

This section describes the hardware details.

Table 2-1 CNE Cluster Details

Nodes Server Model Count
Master Nodes ORACLE SERVER X8-2 3
Worker Nodes ORACLE SERVER X8-2 19

Note:

The CNE clusters for performance benchmarking were utilized in a shared model.

2.1.2 Observability Services

This section describes the required observability services.

Table 2-2 Observability Services

Software Chart Version
OpenSearch 2.11.0
Kyverno 1.9.0
FluentBit 1.9.4
Jaeger 1.52.0
Oracle OpenSearch Dashboard 2.11.0
Elastic-curator 5.5.4
Elastic-exporter 1.1.0
Elastic-master 7.9.3
Logs 3.1.0
Grafana 9.5.3
Prometheus 2.51.1
Prometheus-kube-state-metrics 2.5.0
Prometheus-node-exporter 1.3.1
MetalLB 0.14.4
Metrics-server 0.6.0
Tracer 1.22.0

2.1.3 System Software

This section describes the system software details.

Table 2-3 System Software

System Software Details
Operating System (+Kernel Version)

v5.0.4-0.20230601165947-6ce0bf390ce3

Oracle Linux Server 9.3 (Plow)

Hypervisor Bare metal Server
CNE 24.1.x
OSO 24.2.x
Kubernetes 1.28.x
ASM 1.14.6
Podman 4.6.1

2.2 Resource Profile

This section describes the resource profile for common applications, NSSF microservices, and cnDBTier.

2.2.1 CNE Common Applications

The CPU and RAM resources that each common service provided by CNE consumes are constrained, so that they do not consume excess resources that could be used by applications. Each service is given an initial CPU and RAM allocation when it is deployed and is allowed to grow to a specified upper limit of each resource while it continues to run. For services where little growth is expected, or where increasing the CPU/RAM underneath a running application might cause an unacceptable service disruption, the initial allocation and upper limit are set to the same value. The resource requests and limits are given below:

Container Name Replicas Min CPU Max CPU Min Memory Per Pod Max Memory Per Pod
alertmanager 2 20m 20m 64Mi 64Mi
bastion-controller 1 10m 200m 128Mi 256Mi
config-reloader 4 200m 200m 50Mi 50Mi
controller 1 100m 100m 100Mi 100Mi
dashboards 1 100m 100m 512M 512M
fluent-bit 22 100m 500m 1Gi 1Gi
grafana 1 500m 500m 512Mi 512Mi
grafana-sc-dashboard 1 500m 500m 512Mi 512Mi
grafana-sc-datasources 1 500m 500m 512Mi 512Mi
kube-prometheus-stack 1 100m 200m 100Mi 200Mi
kube-state-metrics 1 20m 20m 32Mi 100Mi
metrics-server 1 100m 100m 200Mi 200Mi
nginx 2 1 2 1Gi 1536Mi
node-exporter 25 800m 800m 512Mi 512Mi
occne-tracer-jaeger-agent 22 256m 500m 128Mi 512Mi
occne-tracer-jaeger-collector 1 500m 1250m 512Mi 1Gi
opensearch 9 1 1 2Gi 2Gi
opensearch 3 1 1 16Gi 16Gi
prometheus 2 12 12 55Gi 55Gi
promxy 1 100m 100m 512Mi 512Mi
snmp-notifier 1 100m 100m 128Mi 128Mi
speaker 21 100m 100m 100Mi 100Mi

Note:

The overall common services resource usage varies on each worker node. The common services listed above are distributed evenly across all worker nodes in the CNE Kubernetes cluster.

2.2.2 Application Microservices

Resource needs to be adjusted or tuned as per the performance or the ongoing benchmark testing.

This section lists the resource requirements to install and run NSSF.

NSSF Services

The following table lists resource requirement for NSSF Services:

Table 2-4 NSSF Services

Service Name Replicas Min CPU Max CPU Min Memory Max Memory
<helm-release-name>-alternate-route 1 1 2 2Gi 4Gi
<helm-release-name>-appinfo 1 200m 200m 1Gi 1Gi
<helm-release-name>-egress-gateway 2 4 4 4Gi 4Gi
<helm-release-name>-ingress-gateway 5 6 6 6Gi 6Gi
<helm-release-name>-nsauditor 1 2 2 1Gi 1Gi
<helm-release-name>-nsavailability 2 4 4 4Gi 4Gi
<helm-release-name>-nsconfig 1 2 2 2Gi 2Gi
<helm-release-name>-nsselection 9 4 4 4Gi 4Gi
<helm-release-name>-nssubscription 1 2 2 1Gi 1Gi
<helm-release-name>-<helm-release-name>-nrf-client-nfdiscovery 2 2 2 1Gi 1Gi
<helm-release-name>-<helm-release-name>-nrf-client-nfmanagement 2 1 1 1Gi 1Gi
<helm-release-name>-ocpm-config 1 1 1 1Gi 1Gi
<helm-release-name>-performance 1 2 2 1Gi 1Gi

ASM Sidecar

NSSF leverages the Platform Service Mesh (for example, Aspen Service Mesh) for all internal and external TLS communication. If ASM Sidecar injection is enabled during NSSF deployment or upgrade, this container is injected to each NSSF pod (or selected pod, depending on the option chosen during deployment or upgrade). These containers stay till pod or deployment exist. For more information about installing ASM, see Configuring NSSF to support Aspen Service Mesh in Oracle Communications Cloud Native Core, Network Slice Selection Function Installation, Upgrade, and Fault Recovery Guide.

Table 2-5 ASM Sidecar

Service Name Replicas Min CPU Max CPU Min Memory Max Memory
<helm-release-name>-alternate-route 1 250m 250m 512Mi 512Mi
<helm-release-name>-appinfo 1 250m 250m 512Mi 512Mi
<helm-release-name>-egress-gateway 2 250m 250m 512Mi 512Mi
<helm-release-name>-ingress-gateway 5 3 3 512Mi 512Mi
<helm-release-name>-nsauditor 1 250m 250m 512Mi 512Mi
<helm-release-name>-nsavailability 2 250m 250m 512Mi 512Mi
<helm-release-name>-nsconfig 1 250m 250m 512Mi 512Mi
<helm-release-name>-nsselection 9 4 4 2Gi 2Gi
<helm-release-name>-nssubscription 1 250m 250m 512Mi 512Mi
<helm-release-name>-<helm-release-name>-nrf-client-nfdiscovery 2 250m 250m 512Mi 512Mi
<helm-release-name>-<helm-release-name>-nrf-client-nfmanagement 2 250m 250m 512Mi 512Mi
<helm-release-name>-ocpm-config 1 250m 250m 512Mi 512Mi
<helm-release-name>-performance 1 250m 250m 512Mi 512Mi

Note:

<helm-release-name> is the Helm release name. For example, if Helm release name is "ocnssf", then nsselection microservice name will be "ocnssf-nsselection".

2.2.3 cnDBTier Resource Profile

The following table describes resources required by cnDBTier pods to perform NSSF benchmark tests.

cnDBTier Services and PVC

Table 2-6 cnDBTier Services and PVC

Deployment Container Replica Min CPU Max CPU Min Memory Max Memory Min Ephemeral Storage Max Ephemeral Storage
ndbappmysqld mysqlndbcluster 4 8 8 10Gi 10Gi 90Mi 1Gi
ndbappmysqld init-sidecar 4 100m 100m 256Mi 256Mi 90Mi 1Gi
ndbmgmd mysqlndbcluster 2 4 4 10Gi 10Gi 90Mi 1Gi
ndbmgmd db-infra-monitor-svc 2 100m 100m 256Mi 256Mi 90Mi 1Gi
ndbmtd mysqlndbcluster 4 10 10 18Gi 18Gi 90Mi 1Gi
ndbmtd db-backup-executor-svc 4 100m 100m 256Mi 256Mi 90Mi 1Gi
ndbmtd db-infra-monitor-svc 4 100m 100m 256Mi 256Mi 90Mi 1Gi
ndbmysqld mysqlndbcluster 4 8 8 10Gi 10Gi 90Mi 1Gi
ndbmysqld init-sidecar 4 100m 100m 256Mi 256Mi 90Mi 1Gi
ndbmysqld db-infra-monitor-svc 4 100m 100m 256Mi 256Mi 90Mi 1Gi
mysql-cluster-db-backup-manager-svc db-backup-manager-svc 1 100m 100m 128Mi 128Mi 90Mi 1Gi
mysql-cluster-db-monitor-svc db-monitor-svc 1 4 4 4Gi 4Gi 90Mi 1Gi
mysql-cluster-site1-site2-replication-svc site1-site2-replication-svc 1 2 2 12Gi 12Gi 90Mi 1Gi
mysql-cluster-site1-site3-replication-svc site1-site3-replication-svc 1 1 1 2Gi 2Gi 90Mi 1Gi

cnDBTier Sidecar

Table 2-7 cnDBTier Sidecar

cnDBTier Pods Replica Name vCPU RAM Ephemeral Storage

SQL (ndbmysqld)

Kubernetes Resource Type: StatefulSet

Sidecar name: init-sidecar

2 istio-proxy 3 4Gi

Min: 90Mi

Max: 1Gi

init-sidecar 0.1 256Mi
db-infra-monitor-svc 0.1 256Mi

SQL (ndbappmysqld)

Kubernetes Resource Type: Statefulset

Sidecar name: init-sidecar

4 init-sidecar 0.1 256Mi

Min: 90Mi

Max: 1Gi

istio-proxy 3 4Gi

MGMT (ndbmgmd)

Kubernetes Resource Type: StatefulSet

Sidecar name: db-infra-monitor-svc

2 db-infra-monitor-svc 0.1 256Mi NA
istio-proxy 3 4Gi

DB (ndbmtd)

Kubernetes Resource Type: StatefulSet

Sidecar name: db-backup-executor-svc

4 db-backup-executor-svc 1 2Gi

Min: 90Mi

Max: 1Gi

db-infra-monitor-svc 100m 256Mi
istio-proxy 4 2Gi

Backup Manager Service

(db-backup-manager-svc)

Sidecar name: NA

Kubernetes Resource Type: Deployment

1 istio-proxy 2 1Gi NA

Replication Service

(db-replication-svc)

Sidecar name: istio-proxy

Kubernetes Resource Type: Deployment

1 istio-proxy 2 1Gi

Min: 90Mi

Max: 1Gi

Monitor Service

(db-monitor-svc)

Sidecar name: istio-proxy

Kubernetes Resource Type: Deployment

1 istio-proxy 2 1Gi NA

cnDBTier with ASM

Table 2-8 cnDBTier with ASM

cnDBTier Pods Replica Min CPU Max CPU Min Memory Max Memory
ndbappmysqld 4 3 3 4Gi 4Gi
ndbmgmd 2 3 3 4Gi 4Gi
ndbmtd 4 4 4 2Gi 2Gi
ndbmysqld 4 3 3 4Gi 4Gi
mysql-cluster-db-backup-manager-svc 1 2 2 1Gi 1Gi
mysql-cluster-db-monitor-svc 1 2 2 1Gi 1Gi
mysql-cluster-site1-site2-replication-svc 1 2 2 1Gi 1Gi
mysql-cluster-site1-site3-replication-svc 1 2 2 1Gi 1Gi