# License 配置 (EMQX 企业版)

# 任务目标

  • 配置 EMQX 企业版 License。
  • 更新 EMQX 企业版 License。

# 配置 License

EMQX 企业版 License 可以在 EMQ 官网免费申请:申请 EMQX 企业版 License (opens new window)

下面是 EMQX Custom Resource 的相关配置,你可以根据希望部署的 EMQX 的版本来选择对应的 APIVersion,具体的兼容性关系,请参考EMQX Operator 兼容性:

# 配置 EMQX 集群

  • 基于 License 文件创建 Secret

    Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。关于 Secret 更加详尽的文档可以参考:Secret (opens new window)。EMQX Operator 支持使用 Secret 挂载 License 信息,因此在创建 EMQX 集群之前我们需要基于 License 创建好 Secret。

    $ kubectl create secret generic ${your_license_name} --from-file=emqx.lic=${/path/to/license/file}
    
    Copied!
    1

    ${your_license_name} 表示创建的 Secret 名称。

    ${/path/to/license/file} 表示 EMQX 企业版 License 文件路径,可以是绝对路径,也可以是相对路径。更多使用 kubectl 创建 Secret 的细节可以参考文档:使用 kubectl 创建 secret (opens new window)

  • 将下面的内容保存成 YAML 文件,并通过 kubectl apply 命令部署它

    apps.emqx.io/v1beta4 EmqxEnterprise 支持通过 .spec.license 字段来配置 EMQX 企业版 License,更多信息请查看:license

    apiVersion: apps.emqx.io/v1beta4
    kind: EmqxEnterprise
    metadata:
      name: emqx-ee
    spec:
      license:
        secretName: ${your_license_name}
      template:
        spec:
          emqxContainer:
            image:
              repository: emqx/emqx-ee
              version: 4.4.14
      serviceTemplate:
        spec:
          type: LoadBalancer
    
    Copied!
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

    secretName 表示上一步中创建的 Secret 名称。

  • 等待 EMQX 集群就绪,可以通过 kubectl get 命令查看 EMQX 集群的状态,请确保 STATUSRunning,这个可能需要一些时间

    $ kubectl get emqxenterprises
    NAME      STATUS   AGE
    emqx-ee   Running  8m33s
    
    Copied!
    1
    2
    3
  • 获取 EMQX 集群的 External IP,访问 EMQX 控制台

    $ kubectl get svc emqx-ee -o json | jq '.status.loadBalancer.ingress[0].ip'
    
    192.168.1.200
    
    Copied!
    1
    2
    3

    通过浏览器访问 http://192.168.1.200:18083 ,使用默认的用户名和密码 admin/public 登录 EMQX 控制台。

# 更新 License

  • 查看 License 信息

    $ kubectl exec -it emqx-ee-core-0 -c emqx -- emqx_ctl license info
    
    Copied!
    1

    可以获取到如下输出,从输出结果可以看到我们申请的 License 的基本信息,包括申请人的信息和 License 支持最大连接数以及 License 过期时间等。

    customer        : EMQ
    email           : cloudnative@emqx.io
    deployment      : deployment-6159820
    max_connections : 10000
    start_at        : 2023-02-16
    expiry_at       : 2023-05-17
    type            : trial
    customer_type   : 0
    expiry          : false
    
    Copied!
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • 更新 License

    • 更新 EMQX 企业版 License Secret

      $ kubectl create secret generic ${your_license_name} --from-file=emqx.lic=${/path/to/license/file} --dry-run -o yaml | kubectl apply -f -
      
      Copied!
      1
    • 查看 EMQX 集群 License 是否被更新

      $ kubectl exec -it emqx-ee-0 -c emqx -- emqx_ctl license info
      
      Copied!
      1

      可以获取到类似如下的信息,从获取到 max_connections 字段可以看出 License 的内容已经更新,则说明 EMQX 企业版 License 更新成功。若证书信息没有更新,可以等待一会,License 的更新会有些时延。

      customer                 : cloudnative
      email                    : cloudnative@emqx.io
      max_connections          : 100000
      original_max_connections : 100000
      issued_at                : 2022-11-21 02:49:35
      expiry_at                : 2022-12-01 02:49:35
      vendor                   : EMQ Technologies Co., Ltd.
      version                  : 4.4.14
      type                     : official
      customer_type            : 2
      expiry                   : false
      
      Copied!
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11