3 Setting Up Prerequisite Software

You must perform prerequisite tasks, such as installing Kubernetes and Helm, before deploying the Oracle Communications Elastic Charging Engine (ECE) composable services on your cloud native environment.

Topics in this document:

Caution:

Oracle does not provide support for the installation or configuration of any prerequisite third-party software. The customer must handle any installation or configuration issues related to non-Oracle prerequisite software.

Prerequisite Tasks for ECE Composable Services

As part of preparing your environment for the ECE composable services, you choose, install, and set up external applications and services in ways that are best suited for your cloud native environment.

The following shows the high-level prerequisite tasks:

  1. Ensure you have downloaded the latest supported software that is compatible with the ECE composable services. See BRM Compatibility Matrix.

  2. Create a Kubernetes cluster.

  3. Establish network access.

  4. Install a container platform supported by Kubernetes, such as Docker, Podman, or containerd.

  5. Install Helm.

  6. Set up your client machine.

  7. Install Apache Kafka.

  8. Set up your Oracle cnDBTier database.

  9. Install and configure an ingress controller.

  10. If you plan to trace the flow of API calls through the ECE composable services, install and configure Jaeger.

    For more information about tracing, see "Tracing the Flow of API Calls".

  11. If you plan to autoscale your pods using Kubernetes Horizontal Pod Autoscaler:

    • Install and configure Kubernetes Metrics Server.

    • Optionally install and configure a service mesh.

    For more information about autoscaling, see "Setting Up Autoscaling of Pods".

  12. If you plan to monitor the ECE composable service operations:

    • Install and configure Prometheus Operator.

    • Install and configure Grafana.

    For more information, see "Monitoring ECE Composable Service Processes".

    Note:

    Prometheus and Grafana are the preferred observability tools, and the ECE composable services include templates for these tools. The ECE composable services also support OpenTelemetry and OpenMetrics standards, which enable integration with other observability tools.

Prepare your environment with these technologies installed, configured, and tuned for performance, networking, security, and high availability. Ensure that backup nodes are available in case of system failure on any of the cluster's active nodes.

Installing Apache Kafka

The ECE composable services require Apache Kafka and use it as an internal message bus.

Installing Oracle cnDBTier

Oracle cnDBTier is a key component of the 5G Service-Based Architecture. It is the geodiverse database layer provided as part of the Cloud Native Environment and provides persistent storage for the state data and subscriber data in a cloud environment.

To install and configure cnDBTier:

  1. Install and configure cnDBTier by following the instructions in Cloud Native Core, cnDBTier Installation, Upgrade, and Fault Recovery Guide.

    For the list of supported cnDBTier versions, see "ECE Composable Services Software Compatibility Requirements" in BRM Compatibility Matrix.

  2. Ensure you create and write down the database administration user name and password.

  3. Before deploying cnDBTier, configure the custom_values.yaml keys in the following list based on your deployment sizing:

    • additionalndbconfigurations.api.TotalSendBufferMemory

    • additionalndbconfigurations.mgm.TotalSendBufferMemory

    • additionalndbconfigurations.ndb.FragmentLogFileSize

    • additionalndbconfigurations.ndb.MaxNoOfConcurrentOperations

    • additionalndbconfigurations.ndb.MaxNoOfConcurrentScans

    • additionalndbconfigurations.ndb.MaxNoOfExecutionThreads

    • additionalndbconfigurations.ndb.NoOfFragmentLogFiles

    • additionalndbconfigurations.ndb.RedoBuffer

    • additionalndbconfigurations.ndb.TotalSendBufferMemory

    • additionalndbconfigurations.tcp.ReceiveBufferMemory

    • additionalndbconfigurations.tcp.SendBufferMemory

    • additionalndbconfigurations.tcp.TCP_RCV_BUF_SIZE

    • additionalndbconfigurations.tcp.TCP_SND_BUF_SIZE

    • global.ndbappReplicaCount

    • global.ndbappReplicaMaxCount

    • global.ndbReplicaCount

    • mgm.ndbdisksize

    • mgm.resources.limits.cpu

    • mgm.resources.limits.memory

    • mgm.resources.requests.cpu

    • mgm.resources.requests.memory

    • ndb.datamemory

    • ndb.ndbbackupdisksize

    • ndb.ndbdisksize

    • ndb.resources.limits.cpu

    • ndb.resources.limits.memory

    • ndb.resources.requests.cpu

    • ndb.resources.requests.memory

    • ndbapp.ndbdisksize

    • ndbapp.resources.limits.cpu

    • ndbapp.resources.limits.memory

    • ndbapp.resources.requests.cpu

    • ndbapp.resources.requests.memory

Exposing the ECE Composable Services Outside the Kubernetes Cluster

Using an ingress controller exposes ECE composable services outside the Kubernetes cluster and allows clients to communicate with the services. Ingress controllers monitor ingress objects and act on the configuration embedded in these objects to expose HTTP services to the external network.

Adding an external load balancer provides a highly reliable single-point access to the services exposed by the Kubernetes cluster. In this case, the ingress controller exposes the services on behalf of the cloud native instance. Using a load balancer removes the need to expose Kubernetes node IPs to the larger user base, insulates users from changes (in terms of nodes appearing or being decommissioned) to the Kubernetes cluster, and enforces access policies.

Add an ingress controller, such as NGINX, Istio, or Traefik, to your ECE composable services system that has:

  • Path-based routing for the Kubernetes cluster service.

  • TLS enabled between the client and the load balancer to secure communications outside of the Kubernetes cluster.

Installing Jaeger

The Jaeger tracing tool helps you trace the flow of messages through the ECE composable services, making it easier to troubleshoot issues.

To install Jaeger, see the Jaeger documentation at: https://www.jaegertracing.io/docs/latest/.

Installing Kubernetes Metrics Server

Metrics Server collects resource metrics from kubelets and exposes them through the Metrics API. These metrics are used by Kubernetes Horizontal Pod Autoscaler to automatically adjust the CPU and memory usage in your ECE composable service pods.

To install Metrics Server, see the Kubernetes Metrics Server documentation at: https://kubernetes-sigs.github.io/metrics-server/.

Installing Prometheus Operator

Prometheus Operator is an open-source toolkit that scrapes metric data from the ECE composable services and then stores it in a time-series database. You use it to monitor the operation of ECE composable service processes. See "Monitoring ECE Composable Service Processes" for more information.

To install Prometheus Operator, see the prometheus-operator GitHub website at: https://github.com/prometheus-operator/prometheus-operator.

Installing Grafana

Grafana is an open-source tool for viewing metric data that is stored in Prometheus Operator. You can use the Grafana Dashboards shipped with the ECE composable services to view performance data.

To install Grafana, see the Grafana Loki installation documentation at: https://grafana.com/docs/loki/latest/installation/helm/.