NetScaler CPX licensing

NetScaler CPX is a container-based application delivery controller that can be provisioned on a Docker host to load balance microservice based applications. You need licensed CPX for better performance of application delivery. NetScaler CPX supports pool licensing. NetScaler ADM can act as your license server to license your NetScaler CPX instances.

NetScaler ADM is available both on-premises and a cloud service as well. You can use the NetScaler ADM to manage pooled capacity licenses for all NetScaler form factors.

For information about NetScaler ADM on-premises, see NetScaler ADM on-premises. For information about NetScaler ADM service, see NetScaler ADM service.

Types of NetScaler CPX licensing

NetScaler CPX supports bandwidth and virtual CPU (core) pool licensing for on-prem and cloud-based deployments.

Bandwidth pool: NetScaler CPX licenses can be allocated based on the bandwidth consumption by the instances. You can use pooled licensing to maximize the bandwidth utilization by ensuring the necessary bandwidth allocation to an instance and not more than its requirement. Currently, NetScaler CPX supports only premium bandwidth pool licensing.

vCPU pool: In the virtual CPU-usage-based licensing, the license specifies the number of CPUs that a particular NetScaler CPX instance is entitled to. So, the NetScaler CPX can check out licenses for only the number of virtual CPUs from the license server. NetScaler CPX checks out licenses depending on the number of CPUs running in the system. For more information about the vCPU pool, see NetScaler virtual CPU licensing.

Supported pooled capacity for NetScaler CPX instances

Product Maximum bandwidth Minimum bandwidth Minimum instances Maximum instances Minimum bandwidth unit
NetScaler CPX 40000 Note: It depends on CPU frequency, generation, and so on. 20 Mbps 1 16 10 Mbps

Note: Citrix is currently working on a NetScaler CPX consumption based or pay-as-you-grow based licensing model for public cloud-based offerings. Once ready, it will be available on the public cloud market place to consume.

How does NetScaler CPX licensing work?

NetScaler CPX pooled capacity: A common license pool from which your NetScaler CPX instance can check out one instance license and only as much bandwidth as it needs. When the instance no longer requires these resources, it checks them back in to the common pool, making the resources available to other instances which need these licenses.

NetScaler CPX check-in and check-out licensing: NetScaler ADM allocates licenses NetScaler CPX instances on demand. A NetScaler CPX instance can check out the license from the NetScaler ADM when a NetScaler CPX instance is provisioned and check back in its license to NetScaler ADM when an instance is destroyed.

NetScaler CPX behavior: A single NetScaler CPX instance checking-out up to 1 Gbps throughput, checks-out only from the instance pool and not from the bandwidth license pool. NetScaler CPX operates in this way up to the 1 Gbps of bandwidth utilization. For example, if a CPX instance consumes a 200 Mbps bandwidth, it uses the instance pool of license, instead of the bandwidth pool. However, if a NetScaler CPX instance consumes 1200 Mbps of throughput, the first 1000 Mbps is utilized from the instance pool and the remaining 200 Mbps is consumed from the bandwidth pool.

NetScaler CPX Express

NetScaler CPX Express is a software edition that is free-of-cost for on-premises and cloud deployments. When you download a NetScaler CPX instance from the Quay repository, the NetScaler CPX Express license is applied to the CPX instance by default. All the NetScaler CPX features are available with the NetScaler CPX Express license. For information about the supported features on CPX, see About NetScaler CPX. The NetScaler community support is available with NetScaler CPX Express but not the enterprise support.

The NetScaler CPX Express license offers 100 Mbps bandwidth capacity. You must license your NetScaler CPX instance for higher capacity, production deployment, and to avail enterprise support.

Note:

Starting from NetScaler CPX version 14.1 build 14.1-17.38, the bandwidth of CPX Express license is increased from 20 Mbps to 100 Mbps. This increased bandwidth enables Kubernetes developers to try out NetScaler proxy.

NetScaler CPX licensing models

NetScaler offers a range of product licensing models for NetScaler CPX to meet your organization’s requirements. You can select options such as vCPU or bandwidth and on-premises or cloud.

Based on your requirements, you can choose any of the following models:

  • Bandwidth based licensing for NetScaler CPX from ADM service
  • vCPU based licensing for NetScaler CPX from ADM service
  • Bandwidth based licensing for NetScaler CPX from ADM on-premises
  • vCPU based licensing for NetScaler CPX from ADM on-premises

Provision bandwidth-based and vCPU-based licensing from NetScaler ADM service for NetScaler CPX

Perform the following steps to provision bandwidth-based license and vCPU-based license for NetScaler CPX from NetScaler ADM service.

  1. Set up NetScaler ADM.

    Ensure that the NetScaler ADM service setup is operational with the NetScaler ADM agent. You must have a NetScaler ADM service and NetScaler ADM agent account for NetScaler CPX licensing to be functional. For information about setting up NetScaler ADM service and NetScaler ADM agent, see NetScaler ADM service.

    Note: In this procedure, a hypervisor (on-premises) NetScaler ADM agent setup is used. In the following image, 10.106.102.199 is the on-premises agent used for licensing NetScaler CPX.

    ADM on-prem agent

  2. Add NetScaler instance license pool to NetScaler ADM service.

    It is assumed that you have a pool of bandwidth licenses available for ADM service. For information about uploading a license file to NetScaler ADM, see Configure pooled capacity. In the following image, CNS_INST_200CC_Retail.lic is used as the bandwidth and instance license pool.

    ADM license files

  3. Deploy NetScaler CPX instance in Kubernetes cluster. Ensure that the following environment variables are added to the NetScaler CPX YAML file to license the NetScaler CPX instance.

    For the bandwidth-based licensing from the NetScaler ADM service, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.166” //ADM agent IP as mentioned in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens
    • name: “BANDWIDTH” value: “3000” //capacity in Mbps wants to allocate to CPX
    • name: “EDITION” value: “Standard” or “Enterprise” //to choose a particular license edition that includes Standard, Platinum, and Enterprise. By default, Platinum is selected.

    For the vCPU-based licensing from the NetScaler ADM service, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.102.216.173” //ADM agent IP as mentioned in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens to
    • name: “CPX_CORES” value: “4” // number of core you want to allocate
    • name: “PLATFORM” value: “CP1000” // number of cores. Check-out count is equal to the number of cores.
  4. Download the cpx-bandwidth-license-adm-service.yaml file using the following command:

     kubectl create namespace bandwidth
     wget https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/cpx-licensing/manifest/cpx-bandwidth-license-adm-service.yaml
    
  5. Deploy the edited YAML in the Kubernetes cluster using the following command:

     kubectl create -f cpx-bandwidth-license-adm-service.yaml -n bandwidth
    
  6. Log in to NetScaler CPX for verifying instancing information by using the following command:

    kubectl exec -it 'cpx-pod-ip-name' bash -n bandwidth
    
  7. To view the licensing information for the given NetScaler CPX instance, run the following commands:

     cli_script.sh “show licenseserver”
     cli_script.sh “show capacity”
    

    You can track the allocated bandwidth and vCPU capacity in the ADM service portal.

Provision Bandwidth based licensing and vCPU based licensing for NetScaler CPX from NetScaler ADM on-premises

Perform the following steps to provision bandwidth-based and vCPU-based to NetScaler CPX from NetScaler ADM on-premises.

  1. Set up NetScaler ADM.

    Ensure that the ADM on-premises setup is ready. Make sure that NetScaler ADM on-premises with or without ADM agent deployment for NetScaler CPX licensing is functioning.

    For information about setting up NetScaler ADM on-premises and NetScaler ADM agent, see NetScaler ADM service.

    Note: In this example, an in-built ADM agent with ADM on-premises is used. In the following image, you can see that there is no agent deployed.

    ADM agent on-prem

  2. Add NetScaler instance license pool to ADM on-premises.

    It is assumed that you have a pool of bandwidth license available for ADM on-premises. To know about uploading a license file to NetScaler ADM, see Licensing. In the following image, CNS_INST_200CC_Retail.lic is used as the bandwidth and instance license pool.

    ADM license files

    In the following image, CP1000 is used as the vCPU license pool.

    vCPU license pool

  3. Deploy NetScaler CPX instance in Kubernetes cluster. Ensure that the following environment variables are added to the NetScaler CPX YAML file to license the NetScaler CPX instance.

    For the bandwidth-based licensing from NetScaler ADM on-premises, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.144” // ADM on-prem instance IP, If you have deployed ADM agent, then this is your agent IP address as described in the step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens
    • name: “BANDWIDTH” value: “3000” //capacity in Mbps wants to allocate to CPX

    For the vCPU-based licensing from NetScaler ADM on-premises, specify the following environment variables in the YAML file:

    • name: “LS_IP” value: “10.105.158.144” // ADM on-prem instance IP, If you have ADM agent deployment then this will be your agent IP as described in step 1
    • name: “LS_PORT” value: “27000” // port on which ADM license server listens to
    • name: “CPX_CORES” value: “4” // the number of cores that you want to allocate
    • name: “PLATFORM” value: “CP1000” // number of cores. Check-out count is equal to the number of cores.
  4. Download the cpx-bandwidth-license-adm-onprem.yaml file using the following command:

     kubectl create namespace bandwidth
     wget https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/cpx-licensing/manifest/cpx-bandwidth-license-adm-onprem.yaml
    
  5. Deploy the edited YAML in the Kubernetes cluster using the following command:

     kubectl create -f cpx-bandwidth-license-adm-onprem.yaml -n bandwidth
    
  6. Log in to NetScaler CPX for verifying instancing information by using the following command:

    kubectl exec -it <cpx-pod-ip-name> bash -n bandwidth
    
  7. To view the licensing information for the NetScaler CPX instance, run the following commands:

     cli_script.sh “show licenseserver”
     cli_script.sh “show capacity”
    

    You can track the allocated bandwidth and vCPU capacity in the ADM on-premises portal.

Commands for cleaning the deployments

You can use the following commands to clean the various YAML deployments:

kubectl delete -f cpx-bandwidth-license-adm-service.yaml -n bandwidth
kubectl delete -f cpx-core-license-adm-service.yaml -n core
kubectl delete -f cpx-bandwidth-license-adm-onprem.yaml -n bandwidth
kubectl delete -f cpx-core-license-adm-onprem.yaml -n core
kubectl delete namespace bandwidth
kubectl delete namespace core
NetScaler CPX licensing