ACK Edge集群支持边缘节点自治,在边缘和云端网络断连状态下,保证边缘节点上的业务应用仍然可以持续稳定地运行,而不会被驱逐或者迁移到其他边缘节点。如果您将边缘节点设置为非自治,云边断连时节点上的应用在到达容忍时间之后将会被驱逐。本文介绍如何通过控制台为边缘节点设置节点的自治属性。
前提条件
背景信息
设置边缘节点自治包括设置节点自治和节点非自治两种配置,边缘节点接入集群后默认为非自治状态。
当边缘节点被设置为自治状态时,如果边缘节点和云端管控断连,此时不仅系统能够保证节点上的应用不会被驱逐,而且节点上的应用也会自动恢复。设置节点自治适用于边缘计算的弱网络连接场景。
当边缘节点被设置为非自治状态时,如果边缘节点和云端管控断连,节点因不能正常地将心跳上报至管控端,而会被设置为不可用(not ready)状态,且节点上的应用在到达容忍时间之后将会被驱逐。
操作步骤
通过控制台的方式开启节点自治
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点页面,选择目标节点操作列的 。
说明仅当前节点是边缘节点时,才会显示节点自治设置按钮。
在弹出的节点自治设置对话框中,单击确定。
通过kubectl命令行的方式开启节点自治
给边缘节点添加如下注解,开启节点自治。
kubectl annotate node xxx node.beta.openyurt.io/autonomy=true --overwrite
查看节点自治状态
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在节点页面,选择目标节点操作列的。
在基本信息页面下方找到状态页签,查看类型为Autonomy对应状态是True表示自治开启成功。
配置缓存组件
当前EdgeHub会将节点上的组件所需要的相关数据进行缓存,在云边断网时确保这些组件可以正常运行,磁盘缓存目录为/etc/kubernetes/cache
。
缓存的数据指的是与API Server进行交互的数据,比如Pod、ConfigMap等资源信息,不包含业务数据。
如果您有组件需要在边缘节点断网的情况下依赖API Server的数据信息来正常运行,可以按照如下步骤进行配置。
获取您的开发人员提供的User-Agent,如果是社区组件,可以在社区内进行查询。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
切换命名空间为kube-system,找到名称为edge-hub-cfg的ConfigMap,在右侧单击YAML 编辑。
将您的User-Agent添加到
cache_agents
配置项中,然后单击确定。您可以登录节点,进入
/etc/kubernetes/cache
目录,查看是否有名为您的User-Agent的目录。
配置完成后,对应的组件和API Server之间交互的数据都会保存到节点的磁盘里。如果您开启了节点自治,组件将会从本地磁盘获取数据,从而确保正常运行。