Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Install Juniper BNG CUPS

This section describes installation procedures and system requirements for Juniper BNG CUPS.

Juniper BNG CUPS disaggregates the broadband network gateway (BNG) function running in Junos OS into separate control plane and user plane components. The control plane is a cloud-native application that runs in a Kubernetes environment. The user plane component continues to run on Junos OS on a dedicated hardware platform.

The installation instructions in this guide are for the disaggregated control plane component of the Juniper BNG CUPS solution. In the Juniper BNG CUPS solution, the control plane is referred to as Juniper BNG CUPS Controller (BNG CUPS Controller). The BNG CUPS Controller component requires a Kubernetes cluster that consists of multiple nodes.

The BNG CUPS Controller can be installed on a single Kubernetes cluster or on a multiple geographical, multiple cluster setup. The installation requirements and installation process for these two types of setups are different. See the followings sections for your BNG CUPS Controller setup:

BNG CUPS Controller Installation Requirements

To install BNG CUPS Controller, you need the hardware and software requirements listed in this section.

BNG CUPS Controller Requirements for a Single Geographically Located Setup

BNG CUPS Controller installs on a Kubernetes cluster that consists of physical or virtual machines. For availability, you must have at least three nodes in the cluster.

BNG CUPS Controller requires the minimal resources listed in Table 1, from the Kubernetes cluster.

Table 1: Single Kubernetes Cluster Setup Requirements
Category Details

Jump host

The jump host must be running Ubuntu version 22.04 LTS or later and have the following resources allocated to it:
  • CPU—2 cores

  • Memory—8 GB

  • Storage—128 GB

If you are using a Red Hat OpenShift Container Platform cluster, you must have the OpenShift CLI installed.

Node specification (minimum of 3 nodes) A node is a Linux system (either virtual or physical system) that has a management address and a domain name. The nodes must meet the following requirements:
  • Operating System:

    • Ubuntu 22.04 LTS (for a BBE Cloudsetup cluster)

    • Red Hat Enterprise Linux CoreOS (RHCOS) 4.15 or later (for an OpenShift Container Platform cluster)

  • CPU cores—12 cores (hyperthreading preferred)

  • Memory—64 GB

  • Storage—512 GB of free disk storage in the root partition

    We recommend that you partition your disk storage accordingly:

    • 128 GB to the root (/) partition for the OS

    • 128 GB to /var/lib/docker for the Docker cache

    • 256 GB to /mnt/longhorn for the application data

      This location is the default location, you can specify a different location during configuration.

  • All cluster nodes must have a user account with sudo access.

  • SSH access through keys to an account with sudo permissions.

Note:

To create the cluster, you can use either of the following applications:

  • BBE Cloudsetup release 2.1 or later

  • Red Hat OpenShift Container Platform release 4.15 or later

    An OpenShift Container Platform cluster also, requires the following:

    • A container registry

    • A network load balancer with at least one IP Address Pool

    • A storage class named jnpr-bbe-storage

BNG CUPS Controller Requirements for a Multiple Geographically Located Setup

A geographically redundant, multiple cluster BNG CUPS Controller setup consists of three separate Kubernetes clusters. Each of the three clusters is geographically separated, so that service impacting events affecting one cluster do not affect the other clusters. The clusters which comprise the multiple cluster setup take on specific roles.

One cluster takes on the role of the management cluster and the other two clusters take on the role of workload clusters. The workload clusters provided a redundant platform where most of BNG CUPS Controller application runs. The management cluster runs software that monitors the health of the workload clusters and determines whether BNG CUPS Controller should switchover from one workload cluster to the other.

Each Kubernetes cluster in the multiple cluster consists of physical or virtual machines (VMs).

BNG CUPS Controller requires the minimal resources listed in Table 1, from the Kubernetes cluster.

Table 2: Multiple Geographically Located Kubernetes Cluster Setup Requirements
Category Details

Jump host—The jump host must have connectivity to the management and workload clusters.

The jump host must be running Ubuntu version 22.04 LTS or later and have the following resources allocated to it:

  • CPU—2 cores

  • Memory—8 GB

  • Storage—128 GB

Management Cluster—The management cluster requires the following:

  • At least 3 hybrid nodes

  • Each node must have connectivity to the workload clusters and the jump host

  • Cluster Services:

    • Container registry

    • Persistent storage class (container storage interface)

  • Open source software:

    • Karmada 1.9.0

    • Submariner 0.17.0

    • Kubernetes 1.28.6 or later

A node is a Linux system (either virtual or physical system) that has a management address and a domain name. The hybrid nodes must meet the following requirements:

  • Operating System—Ubuntu 22.04 LTS

  • CPU—8 cores

  • Memory—32 GB

  • Storage—512 GB

Workload Cluster—Two workload clusters are required (primary and backup). The workload cluster requires the following:

  • At least 3 hybrid nodes

  • Each node must have connectivity to the other workload cluster, the management cluster and the jump host

  • Cluster Services:

    • Container registry

    • Persistent storage class (container storage interface)

    • Network load balancer with Layer 3 (L3) capability

  • Open source software:

    • Submariner 0.17.0

    • Kubernetes 1.28.6 or later

A node is a Linux system (either virtual or physical system) that has a management address and a domain name. The hybrid nodes must meet the following requirements:

  • Operating System:

    • Ubuntu 22.04 LTS (for a BBE Cloudsetup cluster)

  • CPU cores—12 cores (hyperthreading preferred)

  • Memory—64 GB

  • Storage—512 GB of free disk storage in the root partition

    We recommend that you partition your disk storage accordingly:

    • 128 GB to the root (/) partition for the operating system

    • 128 GB to /var/lib/docker for the Docker cache

    • 256 GB to /mnt/longhorn for the application data

      This location is the default location, you can specify a different location during configuration.

  • All nodes must have a user account with sudo access.

Note:

In a single geography BNG CUPS Controller setup, you can make some basic assumptions about the cluster's parameters, therefore you can use a quick start tool like BBE Cloudsetup. But the construction of a production environment BNG CUPS Controller setup with multiple geographies and multiple clusters requires much more input from you to build.

We recommend that you use Rancher's RKE2 distribution for building the clusters that will be part of the multiple cluster setup. Also, Kubernetes 1.28.6 or later is required.

Additional Requirements

To use Juniper BNG CUPS, you must purchase a license for both the Juniper BNG CUPS Controller (control plane) and the Juniper BNG User Planes (user planes) associated to the Juniper BNG CUPS Controller. For information about how to purchase a software license, contact your Juniper Networks sales representative at https://www.juniper.net/in/en/contact-us/.

The MX Series devices that you are using in your Juniper BNG CUPS environment also require their own separate licenses. For information about how to purchase hardware, contact your Juniper Networks sales representative at https://www.juniper.net/in/en/contact-us/.

Confirm that you have a juniper.net user account with permissions to download the BNG CUPS Controller software package. Download and install the BNG CUPS Controller software from a machine that will not be part of the Kubernetes cluster.

Install a Single Geographically Located Juniper BNG CUPS Controller

Use the procedures in this section to install a single geographically located Juniper BNG CUPS Controller for the first time.

Before you begin, confirm that you have met the requirements for the BNG CUPS Controller installation (see Table 1).

You have the following two options for creating the Kubernetes cluster that you can install BNG CUPS Controller on:

  • BBE Cloudsetup—For installation instructions, see BBE Cloudsetup Installation Guide.

    Note:

    BBE Cloudsetup is a utility that you can use to quickly get started with using BNG CUPS Controller. It is not a life cycle tool for the cluster. You cannot expand the width of the cluster, perform node maintenance, upgrade infrastructure components, and so on. A Kubernetes cluster for production purposes should be designed and constructed with the requirements of the production environment and with appropriate support to maintain its life cycle.

  • Red Hat OpenShift Container Platform—For installation instructions, see the Red Hat OpenShift Container Platform documentation.

Before starting the BNG CUPS Controller installation, make sure that you have the following information:

  • Container registry details:
    • If you are using a BBE Cloudsetup created cluster:

      • External registry address

      • External registry port number (usually 5000)

    • If you are using a Red Hat OpenShift Container Platform cluster:

      • External registry (FQDN)

      • Internal (Docker) registry address

      • Internal (Docker) registry port number

  • Syslog server details—Syslog server information is required if you are planning to export BGN CUPS Controller logs to an external syslog collector.
    Note:

    If BBE Event Collection and Visualization is detected running on the target cluster, the address and port values of the ECAV deployment will be suggested as the default.

    • Syslog server address

    • Syslog server port number

Install the BNG CUPS Controller Application (single).

  1. Download the Juniper BNG CUPS software package from Juniper Networks software download page, and save it to the jump host.

    BNG CUPS Controller is available as a compressed TAR file image (.tgz). The filename includes the release number as part of the name. The release number has the format:m.nZb.s

    For example, the software release number 23.4R1.5 maps to the following format:

    • m is the main release number of the product (for example, 23).

    • n is the minor release number of the product (for example, 4).

    • Z is the type of software release (for example, R for FRS or maintenance release).

    • b is the build number of the product (for example, 1, indicating the FRS release, rather than a maintenance release).

    • s is the spin number of the product (for example, 5).

  2. Unpack the BNG CUPS Controller TAR file (.tgz) file on the jump host by entering:
  3. Run the loader script after you unpack the TAR file.
  4. Use the sudo -E dbng link --context context-name --version software-release command to link to the cluster. The link command associates the loaded BNG CUPS Controller software package to the cluster in preparation for the setup.
    • context context-name—The Kubernetes context name.

    • version software-release—The BNG CUPS Controller software version, as displayed from the dbng_loader output.

  5. If you are installing BNG CUPS Controller on a Red Hat OpenShift Container Platform cluster, log in with the OpenShift CLI and then proceed to the next step.
    If you are installing BNG CUPS Controller on a BBE Cloudsetup created cluster, proceed to the next step.
  6. You must authenticate with the container registry in order to be able to push the BNG CUPS Controller container images. How you authenticate to the registry varies depending on if you are installing BNG CUPS Controller on a BBE Cloudsetup created cluster or on a Red Hat OpenShift Container Platform cluster (see the respective documentation for details).
  7. If you are using a secure registry (created on a BBE Cloudsetup created cluster), you authenticate with the registry by issuing a docker login as the system user (the system user supplied in the BBE Cloudsetup configuration file) to the cluster's registry transport address (the FQDN supplied as the system address in the BBE Cloudsetup configuration file).
  8. Run setup to configure your installation. The setup command does the following:
    • Collects information about the cluster environment—The information collected consists of the following:

      • Names of storage classes or persistent volumes

      • Location of a container registry

      • Container and pod name of registry

      • TLS keys

      • Information relevant to supporting BNG CUPS Controller features.

    • Initializes the BNG CUPS Controller configuration.

      If you did not use either the bbecloudsetup option or the template file-name option with the setup command, you need to complete these prompts during the setup:

      Note:

      Only use either the bbecloudsetup option or the template file-name option. Do not use both options.

      • If you are using BBE Cloudsetup to create your cluster.

        • External registry address.

        • External registry port number.

      • If you are using a Red Hat OpenShift Container Platform cluster:

        • External registry (FQDN)

        • Internal (Docker) registry address

        • Internal (Docker) registry port number

    Note:

    context context-name is the only required option for the setup command.

    The options that you can use with the setup command are listed in the following:

    • context context-name—The Kubernetes context name.

    • h, help—Shows the help message and exit.

    • l, log [error, warning, info, debug]—Adjusts the log level.

    • no-color—Prints messages without colors.

    • bbecloudsetup—Uses the default values that are provided with the charts. So that you do not need to answer prompts during setup. The bbecloudsetup option is used when installing BNG CUPS Controller on a BBE Cloudsetup created cluster (see the BBE Cloudsetup Installation Guide for installation instructions).

      Note:

      Only use either the bbecloudsetup option or the template file-name option. Do not use both options.

    • update—You will only be prompted for missing values during setup.

    • ssh host:port—A hostname or IP address of the cluster (any of the cluster’s nodes) and open port used for SSH access to the CLI.

    • secrets—Updates the keys, certificates, and secrets used by the BNG CUPS Controller.

    • verbose—Provides a detailed description before each prompted question.

    • config file-name—The name of the initial configuration file that you want BNG CUPS Controller to use during startup.

    • template file-name—A YAML formatted file that contains a subset of the configuration file that is created during setup. The values that are entered in the template file are used automatically by the setup process. When you use the template option, you are not required to manually enter the information contained in the template file during the setup process. You should only use the template option when using Red Hat OpenShift Container Platform to create the cluster or when creating a multiple geographical cluster. Table 3 describes the information that you need to enter into the template configuration file.

      Note:

      Only use either the bbecloudsetup option or the template file-name option. Do not use both options.

    • mandatory—Only asks required questions during setup.

    • optional—Only asks questions that are not required during setup.

    Table 3: Setup File Field Descriptions

    Field

    Description

    External registry address

    The external registry address is an FQDN that the container images are pushed to.

    Internal (Docker) registry transport address (fqdn:port)

    The internal registry transport address is the address from which the container images are pulled from during rollout. This address is typically different than the external registry address.

    (Optional) CPi Config Storage Name

    The name of the configured CPi storage class.

    (Optional) CPi Config Storage Size

    The size of the configured CPi storage class in mebibytes (MiB).

    (Optional) CPi Core Storage Name

    The name of the CPi core storage class.

    (Optional) CPi Core Storage Size

    The size of the CPi core storage class in mebibytes (MiB).

    (Optional) Scache Core Storage Name

    The name of the Scache core storage class.

    (Optional) Scache Core Storage size

    The size of the Scache core storage class in mebibytes (MiB).

  9. Verify the BNG CUPS Controller installation by running the dbng-version command.
    • context context-name—The Kubernetes context name.

    • detail—Displays all available software versions.

Start BNG CUPS Controller in a Single Geographically Located Setup

Use this procedure to configure and to start BNG CUPS Controller in a single geographically located setup.

  1. Enter rollout to start the BNG CUPS Controller installation. The BNG CUPS Controller utility allows you to roll out different software versions for all microservices that are part of BNG CUPS Controllerted. You need to use the rollout command with sudo as root. The rollout command also validates that all the values needed for the new release are present and loads the new release container images to the registry. Use sudo -E dbng rollout --context context-name --version software-release --service service-name to start BNG CUPS Controller services. For example:
    • context-name—The Kubernetes context.

    • service service-name—The microservice name to rollout (for example, scache or cpi).

    • version software-release—The software release to rollout (defaults to the release that links to the cluster).

    Note:

    On the, first rollout -–service is not required. The -–service is used with the –-version to rollout (upgrade) specific versions of specific services.

    Note:

    By default, BNG CUPS Controller starts from factory-default. The configuration is reset to its initial state. Any persistent state and any persistent logs are cleared.

  2. Enter dbng status --context context-name --detail to verify that the BNG CUPS Controller services are up and running. For example:
    Note:

    Collect the logs for a service and contact the Juniper Networks Technical Assistance Center (JTAC) when either of the following occurs:

    • The service is not running.

    • The service’s up time compared with other services indicates that it has restarted.

  3. You must add a control plane instance (CPi) to your BNG CUPS Controller. Run the CPi add command.
    • context-name—The Kubernetes context name.

    • version software-release—The software release for the new CPi pod. Enter a release.

    • cpi-label—Specify a label that is used for CPi commands.

  4. Verify that the CPi microservice is running, by using the dbng status command.
    • context-name—The Kubernetes context name.

    • detail—Displays detailed information.

Install Juniper BNG CUPS Controller in a Multiple Geographically Located Setup

Use the installation procedures in this section for a BNG CUPS Controller setup that consists of multiple BNG CUPS Controllers that are located in different geographical locations.

Before you begin, confirm that you have met the requirements for the BNG CUPS Controller installation (see Table 2).

Before starting the BNG CUPS Controller installation, make sure that you have the following information:

Note:

You must collect the information listed below for all three clusters.

  • The cluster context names of the workload clusters, the management cluster's karmada context and the management cluster's working context

  • Karmada kubeconfig secret name—The name of the secret used to interface with the Karmada context's REST API

  • Container registry details for each cluster:
    • External registry address

    • External registry port number (usually 5000)

  • Syslog server details—Syslog server information is required if you are planning to export BGN CUPS Controller logs to an external syslog collector.
    Note:

    If BBE Event Collection and Visualization is detected running on the target cluster, the address and port values of the ECAV deployment will be suggested as the default.

    • Syslog server address

    • Syslog server port number

Install the BNG CUPS Controller Application (multiple geographically located setup).

  1. Download the Juniper BNG CUPS software package from Juniper Networks software download page, and save it to the jump host.

    BNG CUPS Controller is available as a compressed TAR file image (.tgz). The filename includes the release number as part of the name. The release number has the format:m.nZb.s

    For example, the software release number 23.4R1.5 maps to the following format:

    • m is the main release number of the product (for example, 23).

    • n is the minor release number of the product (for example, 4).

    • Z is the type of software release (for example, R for FRS or maintenance release).

    • b is the build number of the product (for example, 1, indicating the FRS release, rather than a maintenance release).

    • s is the spin number of the product (for example, 5).

  2. Unpack the BNG CUPS Controller TAR (.tgz) file on the jump host by entering:
  3. Run the loader script after you unpack the TAR file.
  4. Use the sudo -E dbng link --context context-name --version software-release command to link to the cluster. The link command takes the list of workload cluster contexts and an observer context and associates the loaded BNG CUPS Controller software package, in preparation for the setup.

    link command takes the list of workload cluster contexts and an observer context!

    • context karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • worload-context workload-1-context-name workload-2-context-name—The two workload context names.

    • observer-context management-context-name—The context name for the management cluster. Be aware that this context is not the same as the Karmada context name that is associated with the management cluster.

    • version software-release—The BNG CUPS Controller software version, as displayed from the dbng_loader output.

    Note:

    During installation, Karmada is installed on the management cluster and Karmada creates its own context on the management cluster. The Karmada context is used to target any operations involving the workload clusters. The management cluster also has its own context that is used for running noncritical centralized workloads (for example, BBE Event Collection and Visualization). You use this management cluster context for the observer-context.

    Figure 1 shows where the different contexts are located in a multiple cluster setup.

    Figure 1: Multiple Cluster Contexts Multiple Cluster Contexts
  5. You must authenticate with the registry on each cluster in the multiple cluster setup, in order to push the BNG CUPS Controller container images. You authenticate with the registry by issuing a docker login as the system user (the system user entered in the BBE Cloudsetup configuration file) to the cluster's registry transport address (the FQDN supplied as the system address in the BBE Cloudsetup configuration file).
  6. Run setup to configure your installation. The setup command does the following:
    • Collects information about the cluster environment—The information collected consists of the following:

      • Names of storage classes or persistent volumes

      • Location of a container registry

      • Container and pod name of registry

      • TLS keys

      • Information relevant to supporting BNG CUPS Controller features.

    • Initializes the BNG CUPS Controller configuration.

    The following prompts will appear during the setup process:

    • Enter the following information for the management cluster:

      • External registry address and port number for each cluster. Click the Enter key after entering the information for each cluster.

      • Registry address and port number, for the observer (management cluster) to pull from.

      • Karmada kubeconfig secret name

      • Enable TLS (default is False)

      • TLS secret name

    • Enter the following for the primary workload cluster. After entering the information, click the Enter key to enter the information for the backup workload cluster:

      • Name of cluster

      • Cluster registry address and port number

    • Enter the following for the backup workload cluster:

      • Name of cluster

      • Cluster registry address and port number

    • CPi Config storage class name and size

    • CPi Core storage class name and size

    • Scache Core storage name

    • Scache Core storage size

    The options that you can use with the setup command are listed in the following:

    • context karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • h, help—Shows the help message and exit.

    • l, log [error, warning, info, debug]—Adjusts the log level.

    • no-color—Prints messages without colors.

    • update—You will only be prompted for missing values during setup.

    • ssh host:port-number—A hostname or IP address of the cluster (any of the cluster’s nodes) and open port used for SSH access to the CLI.

    • secrets—Updates the keys, certificates, and secrets used by the BNG CUPS Controller.

    • verbose—Provides a detailed description before each prompted question.

    • config file-name—The name of the initial configuration file that you want BNG CUPS Controller to use during startup.

    • template file-name—A YAML formatted file that contains a subset of the configuration file that is created during setup. The values that are entered in the template file are used automatically by the setup process. When you use the template option, you are not required to manually enter the information contained in the template file during the setup process. You should only use the template option when using Red Hat OpenShift Container Platform to create the cluster or when creating a multiple geographical cluster. Table 3 describes the information that you need to enter into the template configuration file.

    • mandatory—Only asks required questions during setup.

    • optional—Only asks questions that are not required during setup.

    • context karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • update—You will only be prompted for missing values during setup.

    • ssh host:port—A hostname or IP address of the cluster (any of the cluster’s nodes) and open port used for SSH access to the CLI.

  7. Verify the BNG CUPS Controller installation by running the dbng-version command.
    • context context-name—The Kubernetes context name.

    • detail—Displays all available software versions.

Start BNG CUPS Controller in a Multiple Geographically Located Setup

Use this procedure to configure and to start BNG CUPS Controller in a multiple geographically located setup.

  1. Enter rollout to start the BNG CUPS Controller installation. The BNG CUPS Controller utility allows you to roll out different software versions for all microservices that are part of your BNG CUPS Controller multiple geographically located setup. You need to use the rollout command with sudo as root. The rollout command also validates that all the values needed for the new release are present and loads the new release container images to the registry. Use sudo -E dbng rollout --context karmada-context-name --version software-release --service service-name to start BNG CUPS Controller services. For example:
    • karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • service service-name—The microservice name to rollout (for example, scache or cpi).

    • version software-release—The software release to rollout (defaults to the release that links to the cluster).

    Note:

    On the, first rollout -–service is not required. The -–service is used with the –-version to rollout (upgrade) specific versions of specific services.

    Note:

    By default, BNG CUPS Controller starts from factory-default. The configuration is reset to its initial state. Any persistent state and any persistent logs are cleared.

  2. Enter dbng status --context karmada-context-name --detail to verify that the BNG CUPS Controller services are up and running. For example:
    Note:

    Collect the logs for a service and contact the Juniper Networks Technical Assistance Center (JTAC) when either of the following occurs:

    • The service is not running.

    • The service’s up time compared with other services indicates that it has restarted.

  3. You must add a control plane instance (CPi) to your BNG CUPS Controller. Run the CPi add command.
    • karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • version software-release—The software release for the new CPi pod. Enter a release.

    • cpi-label—Specify a label that is used for CPi commands.

  4. Verify that the CPi microservices is running, by using the dbng status command.
    • karmada-context-name—The context name of the Karmada context that is created when Karmada is installed on the management cluster.

    • detail—Displays detailed information.

Install a BNG User Plane

The BNG User Planes that you use as part of Juniper BNG CUPS are the MX Series routers that you have installed in your network. BNG User Planes (MX Series routers) run Junos OS, if you need to install a BNG User Plane, see Junos® OS Software Installation and Upgrade Guide.