NetScaler CPX 许可证聚合器

目前,NetScaler CPX 从 NetScaler ADM 服务器获得许可证。在 Kubernetes 环境中,NetScaler CPX 可以动态启动或关闭。如果 NetScaler CPX 意外停机,NetScaler ADM 服务器需要几分钟时间才能回收许可证。NetScaler ADM 服务器必须能够在 NetScaler CPX 出现故障时立即收回此类许可证,这样才能将相同的许可证分配给另一个 NetScaler CPX。此外,如果出于任何原因无法访问 NetScaler ADM 服务器,则无法在群集中许可使用新的 NetScaler CPX。

NetScaler CPX 许可证聚合器是 NetScaler 提供的 Kubernetes 服务。该服务充当 Kubernetes 群集内的 NetScaler CPX 许可的本地提供商。部署在 Kubernetes 群集中的 NetScaler CPX 许可证聚合器服务可以充当 NetScaler CPX 和 ADM 许可服务器之间的中介,跟踪 NetScaler CPX 和分配的许可证。借助 NetScaler CPX 许可证聚合器服务,当 NetScaler CPX 出现故障时,NetScaler ADM 服务器可以立即收回许可证。

在 Kubernetes 群集中,NetScaler CPX License Aggregator 服务支持作为 sidecar 的 NetScaler CPX 和独立部署。

注意:

使用 NetScaler CPX 许可证聚合器进行许可需要 NetScaler CPX 13.1-30.x 或更高版本。NetScaler CPX License Aggregator 不支持许可较旧版本的 NetScaler CPX。

NetScaler CPX 许可证聚合器的主要好处

以下是使用 NetScaler CPX 许可证聚合器的主要好处:

  • 可扩展性: NetScaler ADM 许可服务器最多只能支持 10000 个 NetScaler CPX 部署。随着 NetScaler CPX License Aggregator 服务的推出,每个 Kubernetes 群集都可以充当 NetScaler ADM 许可服务器的单个客户端。因此,您可以使用一台 NetScaler ADM 许可服务器扩展许多 NetScaler CPX。

  • 资源优化: NetScaler CPX License Aggregator 服务还支持群集范围的许可功能,还可以根据需要从 NetScaler ADM 服务器签出许可证。NetScaler CPX 许可证聚合器可以将许可证返还给 NetScaler ADM 服务器。 NetScaler CPX 许可证聚合器可以处理 NetScaler CPX 的不正常终止,并在配置的等待期过后从这些 NetScaler CPX 那里收回许可证。

部署拓扑

下图显示了 Kubernetes 群集中的 NetScaler CPX 许可证聚合器部署。

NetScaler CPX 许可证聚合器部署

在此图中:

  • CPX 表示 NetScaler CPX
  • CPX License Aggregator 表示 NetScaler CPX 许可证聚合器

在此示例部署中,NetScaler CPX 许可证聚合器服务与 NetScaler CPX 和 NetScaler ADM 代理一起部署在 Kubernetes 群集中。NetScaler CPX 许可证聚合器服务充当 NetScaler CPX 和 NetScaler ADM 代理之间的中介,监视群集中的所有 NetScaler CPX 并管理它们的许可证。

使用 Helm 图表部署 NetScaler CPX 许可证聚合器

必备条件

以下必备条件适用:

  • 您需要 Kubernetes 版本 1.16 及更高版本。

  • 您需要 Helm 3.x 或更高版本。

  • 您必须获得拥有 NetScaler CPX 许可证的许可证服务器的 IP 地址。

  • 您必须在 NetScaler CPX 许可证聚合器中提供 Redis 数据库的密码。您可以使用 Kubernetes 机密提供数据库密码,以下命令可用于创建机密:

     kubectl create secret generic dbsecret --from-literal=password=<custom-password>
    

使用 Helm 图表进行部署

根据 NetScaler CPX 许可证的类型,执行以下步骤使用 Helm 图表部署 NetScaler CPX 许可证聚合器。有关不同类型的 NetScaler CPX 许可证的更多信息,请参阅 NetScaler CPX 许可

安装 Helm 图表

请使用以下命令添加 NetScaler CPX License Aggregator Helm 图表存储库:

    helm repo add Citrix https://citrix.github.io/citrix-helm-charts/

安装 NetScaler CPX 许可证聚合器来管理带宽池许可证

根据您拥有的 NetScaler CPX 池化许可证的类型,使用以下命令之一。在这些命令中,my-release 用作发行版名称。

注意:

默认情况下,Helm Chart 会安装推荐的 RBAC 角色和角色绑定。

对于 Platinum 带宽许可证:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.instanceQuantum=<QUANTUM>,licenseInfo.instanceLowWatermark=<LOW WATERMARK>,licenseInfo.bandwidthPlatinumQuantum=<QUANTUM-in-Mbps>,licenseInfo.bandwidthPlatinumLowWatermark=<LOW WATERMARK-in-Mbps>

对于 Enterprise 带宽版:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.instanceQuantum=<QUANTUM>,licenseInfo.instanceLowWatermark=<LOW WATERMARK>,licenseInfo.bandwidthEnterpriseQuantum=<QUANTUM-in-Mbps>,licenseInfo.bandwidthEnterpriseLowWatermark=<LOW WATERMARK-in-Mbps>

对于 Standard 带宽版:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.instanceQuantum=<QUANTUM>,licenseInfo.instanceLowWatermark=<LOW WATERMARK>,licenseInfo.bandwidthStandardQuantum=<QUANTUM-in-Mbps>,licenseInfo.bandwidthStandardLowWatermark=<LOW WATERMARK-in-Mbps>

这些命令使用默认配置在 Kubernetes 群集上部署 NetScaler CPX 许可证聚合器。可以在安装时配置参数。有关详细信息,请参阅 Helm 图表 GitHub 存储库中的 NetScaler CPX License Aggregator 配置部分,其中列出了您可以在安装过程中配置的强制性参数和可选参数。

安装 NetScaler CPX 许可证聚合器来管理 vCPU 许可证

根据您拥有的 NetScaler CPX vCPU 许可证的类型,使用以下命令之一。在这些命令中,my-release 用作发行版名称。

注意: 默认情况下,Helm 图表会安装推荐的 RBAC 角色和角色绑定。

对于 Platinum vCPU 版本:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.vcpuPlatinumQuantum=<QUANTUM>,licenseInfo.vcpuPlatinumLowWatermark=<LOW WATERMARK>

对于 Enterprise vCPU 版本:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.vcpuEnterpriseQuantum=<QUANTUM>,licenseInfo.vcpuEnterpriseLowWatermark=<LOW WATERMARK>

对于 Standard vCPU 版本:

    helm install my-release citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.vcpuStandardQuantum=<QUANTUM>,licenseInfo.vcpuStandardLowWatermark=<LOW WATERMARK>

安装 NetScaler CPX 许可证聚合器来管理多个许可证

如果您需要 NetScaler CPX 许可证聚合器来管理多种类型的许可证,则必须在 Helm 命令中指定这些许可证的相关参数。

例如:

要为 pooled platinum bandwidth editionvCPU platinum edition 许可证部署 NetScaler CPX 许可证聚合器,请执行以下操作:

      helm install demo citrix/cpx-license-aggregator --set licenseServer.address=<License-Server-IP-or-FQDN>,redis.secretName=<Kubernetes-Secret-for-DB-password>,licenseAggregator.username=<unique-ID-for-CLA>,licenseInfo.instanceQuantum=<QUANTUM>,licenseInfo.instanceLowWatermark=<LOW WATERMARK>,licenseInfo.bandwidthPlatinumQuantum=<QUANTUM-in-Mbps>,licenseInfo.bandwidthPlatinumLowWatermark=<LOW WATERMARK-in-Mbps>,licenseInfo.vcpuPlatinumQuantum=<QUANTUM>,licenseInfo.vcpuPlatinumLowWatermark=LOW WATERMARK>

将 NetScaler CPX 配置为从 NetScaler CPX License Aggregator 获取许可证

当您使用 NetScaler CPX 许可证聚合器许可 NetScaler CPX 时,CLA 需要在 NetScaler CPX 部署 YAML 中提供环境变量。

必须在此环境变量中提供 ipaddressdomainname 使用哪个 NetScaler CPX 许可证聚合器,如下所示:

      env:
      - name: "CLA"
        value: "192.0.2.2" 

      env:
      - name: "CLA"
        value: "local-cla.org" 

您还必须在 NetScaler CPX YAML 中提供以下环境变量。

  • POD_NAME:指定 pod 的名称。容器的名称作为环境变量向 NetScaler CPX 公开。
  • POD_NAMESPACE:指定 pod 的命名空间。容器的命名空间作为环境变量向 NetScaler CPX 公开。
  • Bandwidth:以 Mbps 为单位指定分配给 NetScaler CPX 的带宽。
  • Edition:指定许可证版本。支持的值包括“Standard”、“Platinum”和“Enterprise”。
  • CPX_CORES:指定要为 NetScaler CPX 运行的内核数量。

有关不同 NetScaler CPX 许可选项的详细信息,请参阅 NetScaler CPX 许可

下图显示了使用这些环境变量的示例配置:

      - name: POD_NAME
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.name
      - name: POD_NAMESPACE
        valueFrom:
          fieldRef:
            apiVersion: v1
            fieldPath: metadata.namespace
      - name: “BANDWIDTH”
        value: 1000
      - name: “CPX_CORES” 
        value: 1
      - name: “EDITION”
        value: PLATINUM

还需要在 NetScaler CPX YAML 中添加以下标签:

     labels:
       adc: citrix

有关 NetScaler CPX 许可证聚合器的部署示例,请参阅 NetScaler CPX 许可证聚合器:部署示例

NetScaler CPX 许可证聚合器