本文介绍ACK@Edge轻量化特性的快速使用流程和快速使用方式,帮助您快速上手ACK@Edge轻量化特性。

前提条件

  • 边缘节点的轻量化接入只支持基础型网络边缘节点池。
  • ACK@Edge轻量化特性处于定向邀测阶段,如需使用,请提交工单申请加入白名单。
  • 已开通微消息队列MQTT版服务并授权。具体操作,请参见开通服务并授权
  • 已创建边缘容器集群。请确保边缘容器集群版本≥1.20.11-aliyunedge.1。如版本不满足,请创建新的边缘集群或升级边缘集群至要求的版本。具体操作,请参见创建边缘托管版集群升级边缘集群
  • 您最大能够管理的轻量化节点数取决于创建的MQTT实例的连接数上限消息TPS上限订阅关系数上限。更多信息,请参见创建MQTT实例
  • 更多使用限制信息,请参见使用限制

快速使用流程

ACK@Edge轻量化特性的快速使用流程如下图所示。

start

步骤一:创建MQTT资源

根据边缘容器集群所在地域和可用区,在同一地域和可用区内创建MQTT资源。具体操作如下:

  1. 创建MQTT实例。
    1. 登录微消息队列MQTT版控制台
    2. 在左侧导航栏中选择实例列表,在实例列表页面的顶部菜单栏选择地域,然后单击创建实例
    3. 在弹出的付费方式面板中,付费方式固定为包年包月,您无需设置,直接在面板左下角单击确定
    4. 设置相关界面参数后,选中页面下方的微消息队列MQTT版(包年包月)服务协议,然后单击立即购买
      说明 连接数上限消息TPS上限订阅关系数上限决定了您能够管理的轻量化节点最大数目,以及能够更新的Pod数目。若实际的节点规模超过MQTT实例的配置要求,可能会出现消息丢失。请您根据将要管理的最大的轻量化节点的规模,规划MQTT实例对应的配置。
      参数 说明
      类型 选择基础版实例
      地区和可用区 选择实例所部署的地域。
      重要 为了降低延迟,请选择与已有的边缘容器集群在同一个地域和可用区。
      连接数上限 限制了能够管理的轻量化方式接入的节点数目。若选择连接数上限1千个,则最大能够管理的轻量化方式接入的节点数目为1000-2=998个。
      消息TPS上限 限制了能够同时更新的Pod数目。

      若选择连接数上限1千个, 则同时能够更新的Pod数目为1000/2=500个。

      订阅关系数上限 限制了能够管理的轻量化方式接入的节点数目。若轻量化方式接入节点的数目为500,则订阅关系数为500+2=502个。
    5. 在订单支付面板,根据提示完成支付。
      MQTT实例创建完成后,单击目标实例名称进入实例详情页面,在实例详情页面下方单击接入点页签,获取该MQTT实例的接入点信息如下:
      • 公网接入点Endpointmqtt-cn-tl32rf7****.mqtt.aliyuncs.com
      • VPC接入点Endpointmqtt-cn-tl32rf7****-internal-vpc.mqtt.aliyuncs.com
  2. 创建Group。
    1. 实例列表页面的顶部菜单栏选择地域,然后单击刚创建好的实例名称进入实例详情页面。
    2. 在左侧导航栏选择Group管理,在页面左上方单击创建Group,在弹出面板中输入Group IDGID_LITE,然后单击确定
  3. 创建Topic。
    1. 实例列表页面的顶部菜单栏选择地域,然后单击刚创建好的实例名称进入实例详情页面。
    2. 在左侧导航栏选择Topic管理,在页面左上方单击创建Topic,在弹出面板中,输入要创建的Topic名称kole,自定义描述信息,然后单击确定
  4. 生成Topic权限策略。
    1. Topic管理页面,单击刚创建好的Topic名称进入Topic详情页面,然后在页面右上方单击权限策略示例
    2. 在弹出面板中,选择策略类型自定义策略,选择权限类型消息发布和订阅,然后在代码框右上角单击复制按钮,拷贝策略文件并按如下要求修改。
      1. 删除如下图中标注1、2、3处以“//”开头的注释内容,然后替换{groupId}为您创建的Group ID信息。修改后保存策略内容备用。策略
      2. 在已拷贝的策略内容中,添加以下策略内容。

        替换以下mqtt-cn-tl32rf7****为您创建的实例ID,{groupId}为您创建的Group ID信息。

        {
        			"Effect": "Allow",
        			"Action": "mq:RegisterDeviceCredential",
        			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/{groupId}"
        		},
        		{
        			"Effect": "Allow",
        			"Action": "mq:GetDeviceCredential",
        			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/{groupId}"
        		},
        		{
        			"Effect": "Allow",
        			"Action": "mq:UnRegisterDeviceCredential",
        			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/{groupId}"
        		},
        		{
        			"Effect": "Allow",
        			"Action": "mq:RefreshDeviceCredential",
        			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/{groupId}"
        		}
      以本文上面创建的实例和Group ID为例,说明添加修改后的Topic权限策略内容为:
      {
      	"Version": "1",
      	"Statement": [{
      			"Effect": "Allow",
      			"Action": [
      				"mq:MqttInstanceAccess"
      			],
      			"Resource": [
      				"acs:mq:*:*:instance/mqtt-cn-tl32rf7****"
      			]
      		},
      		{
      			"Effect": "Allow",
      			"Action": [
      				"mq:PUB",
      				"mq:SUB"
      			],
      			"Resource": [
      				"acs:mq:*:*:topic/mqtt-cn-tl32rf7****/kole"
      			]
      		},
      		{
      			"Effect": "Allow",
      			"Action": [
      				"mq:SUB"
      			],
      			"Resource": [
      				"acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/GID_LITE"
      			]
      		},
      		{
      			"Effect": "Allow",
      			"Action": "mq:RegisterDeviceCredential",
      			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/GID_LITE"
      		},
      		{
      			"Effect": "Allow",
      			"Action": "mq:GetDeviceCredential",
      			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/GID_LITE"
      		},
      		{
      			"Effect": "Allow",
      			"Action": "mq:UnRegisterDeviceCredential",
      			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/GID_LITE"
      		},
      		{
      			"Effect": "Allow",
      			"Action": "mq:RefreshDeviceCredential",
      			"Resource": "acs:mq:*:*:groupId/mqtt-cn-tl32rf7****/GID_LITE"
      		}
      	]
      }

步骤二:配置MQTT实例的访问权限

  1. 创建RAM用户。
    1. 使用阿里云账号登录RAM控制台
    2. 在左侧导航栏,选择身份管理 > 用户,然后单击创建用户
    3. 创建用户页面,输入登录名称显示名称,选中访问方式为Open API调用访问,然后单击确定
      登录名称命名规范为{mqtt实例ID}-{topic}-access。举例: 若MQTT实例ID为mqtt-cn-2r42pyqx001,Topic为kole,则RAM登录名称为mqtt-cn-2r42pyqx001-kole-accessram
      RAM用户创建完成后,系统会显示当前RAM用户的AccessKey IDAccessKey Secret信息,请妥善保存。
  2. 创建访问MQTT实例的自定义权限策略。
    访问MQTT实例的自定义权限策略即修改后的Topic权限策略。
    1. RAM控制台左侧导航栏,选择权限管理 > 权限策略
    2. 权限策略页面,单击创建权限策略
    3. 创建权限策略页面,单击脚本编辑页签,使用修改后的Topic权限策略的内容替换原编辑框中策略内容。然后单击下一步:编辑基本信息。关于权限策略语法结构的详情,请参见权限策略语法和结构
    4. 输入权限策略名称备注,然后单击确定
      权限策略名称的命名规范为{mqtt 实例 ID}-{topic}-access 。举例: 若MQTT实例ID为mqtt-cn-2r42pyqx001,Topic为kole,则策略名称命名为mqtt-cn-2r42pyqx001-kole-access
  3. 为刚创建的RAM用户授予访问MQTT实例的权限。
    1. 用户页面,找到刚创建好的RAM用户,单击其右侧操作列下的添加权限
    2. 单击自定义策略,选中刚创建好的访问MQTT实例的自定义权限策略,单击确定,然后单击完成

步骤三:安装配置ack-kole-controller组件

ack-kole-controller组件是ACK@Edge提供的轻量化特性的云端组件,该组件安装完成后,会自动部署到云上节点上。具体操作如下:

  1. 登录容器服务管理控制台,在左侧导航栏中选择集群
  2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择运维管理 > 组件管理
  3. 搜索并选中ack-kole-controller组件,单击组件右下方的安装
  4. 安装完成后,单击组件右下方的配置,在组件参数配置面板中设置如下参数。
    MQTT参数设置方法如下:
    参数 说明
    brokerPort MQTT实例端口,默认为8883。
    broker 输入创建MQTT实例中获取的实例公网接入点的Endpoint地址,本文为mqtt-cn-tl32rf7****.mqtt.aliyuncs.com
    brokerVpc 输入创建MQTT实例中获取的实例VPC接入点的Endpoint地址。本文为mqtt-cn-tl32rf7****-internal-vpc.mqtt.aliyuncs.com
    instance 输入已创建的MQTT实例ID。
    group 输入已创建的Group ID,默认为GID_LITE。
    rootTopic 输入已创建的Topic名称,默认为kole。

    secrets参数设置方法如下:

    说明
    • 仅首次安装时,需要配置secrets的参数mqttAccessKeymqttSecretKey,后续升级无需配置。
    • mqttAccessKeymqttSecretKey的值只会被保存到当前边缘容器集群kube-system命名空间下kole-controller-mqtt-access-secret 对应的Secret资源中。
    参数 说明
    mqttAccessKey 输入创建RAM用户中生成的AccessKey ID。
    mqttSecretKey 输入创建RAM用户中生成的AccessKey Secret。

步骤四:轻量化接入边缘节点

将边缘节点通过轻量化方式接入到边缘容器集群中,具体操作如下:

  1. 新建边缘基础型节点池。
    1. 登录容器服务管理控制台,在左侧导航栏中选择集群
    2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择节点管理 > 节点池
    3. 节点池页面,单击页面右上角的创建边缘节点池(Beta)
    4. 创建边缘节点池(Beta)页面完成节点池配置,然后单击提交
      重要 请注意选择云边协同网络基础型节点池。更多信息,请参见添加边缘节点
      节点池创建完成后,您可以在节点池列表中查看已创建的节点池信息。
  2. 边缘节点轻量化接入。
    1. 节点池页面,选择目标边缘基础节点池右侧操作列的更多 > 添加已有节点
    2. 在添加节点页面,选择手动添加,然后单击下一步
    3. 配置实例信息。选择的架构要与边缘节点架构类型相同,并选中轻量化接入,然后单击下一步
      说明 若您的边缘容器集群中未安装配置ack-kole-controller组件,则无法选中轻量化接入。请先安装配置ack-kole-controller组件。具体操作,请参见步骤三:安装配置ack-kole-controller组件
    4. 添加完成页面,单击复制,然后登录到您的边缘节点上, 并在终端粘贴执行该命令完成节点轻量化接入。
      接入完成
      • 在边缘节点上执行成功后,您可以在节点页面查看到该边缘节点的信息。已接入
      • 边缘节点轻量化接入后,边缘节点会自动添加以下标签和污点:
        • 标签
          type: lite-kubelet
        • 污点
            taints:
            - effect: NoSchedule
              key: type
              value: lite-kubelet