设置边缘节点自治

ACK Edge集群支持边缘节点自治,在边缘和云端网络断连状态下,保证边缘节点上的业务应用仍然可以持续稳定地运行,而不会被驱逐或者迁移到其他边缘节点。如果您将边缘节点设置为非自治,云边断连时节点上的应用在到达容忍时间之后将会被驱逐。本文介绍如何通过控制台为边缘节点设置节点的自治属性。

前提条件

背景信息

设置边缘节点自治包括设置节点自治和节点非自治两种配置,边缘节点接入集群后默认为非自治状态。

  • 当边缘节点被设置为自治状态时,如果边缘节点和云端管控断连,此时不仅系统能够保证节点上的应用不会被驱逐,而且节点上的应用也会自动恢复。设置节点自治适用于边缘计算的弱网络连接场景。

  • 当边缘节点被设置为非自治状态时,如果边缘节点和云端管控断连,节点因不能正常地将心跳上报至管控端,而会被设置为不可用(not ready)状态,且节点上的应用在到达容忍时间之后将会被驱逐。

操作步骤

通过控制台的方式开启节点自治

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  3. 节点页面,选择目标节点操作列的更多 > 节点自治设置

    说明

    仅当前节点是边缘节点时,才会显示节点自治设置按钮。

  4. 在弹出的节点自治设置对话框中,单击确定

通过kubectl命令行的方式开启节点自治

给边缘节点添加如下注解,开启节点自治。

kubectl annotate node xxx node.beta.openyurt.io/autonomy=true --overwrite

查看节点自治状态

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择节点管理 > 节点

  2. 节点页面,选择目标节点操作列的更多 > 详情

  3. 基本信息页面下方找到状态页签,查看类型为Autonomy对应状态是True表示自治开启成功。image

配置缓存组件

当前EdgeHub会将节点上的组件所需要的相关数据进行缓存,在云边断网时确保这些组件可以正常运行,磁盘缓存目录为/etc/kubernetes/cache

说明

缓存的数据指的是与API Server进行交互的数据,比如Pod、ConfigMap等资源信息,不包含业务数据。

如果您有组件需要在边缘节点断网的情况下依赖API Server的数据信息来正常运行,可以按照如下步骤进行配置。

  1. 获取您的开发人员提供的User-Agent,如果是社区组件,可以在社区内进行查询。

  2. 登录容器服务管理控制台,在左侧导航栏选择集群

  3. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择配置管理 > 配置项

  4. 切换命名空间kube-system,找到名称edge-hub-cfg的ConfigMap,在右侧单击YAML 编辑

  5. 将您的User-Agent添加到cache_agents配置项中,然后单击确定

  6. 您可以登录节点,进入/etc/kubernetes/cache目录,查看是否有名为您的User-Agent的目录。

配置完成后,对应的组件和API Server之间交互的数据都会保存到节点的磁盘里。如果您开启了节点自治,组件将会从本地磁盘获取数据,从而确保正常运行。