一种安全驱逐Kubernetes集群中节点的方法和存储设备技术

技术编号:25949370 阅读:28 留言:0更新日期:2020-10-17 03:41
本发明专利技术涉及计算机技术领域,特别涉及一种安全驱逐Kubernetes集群中节点的方法和存储设备。所述一种安全驱逐Kubernetes集群中节点的方法,包括步骤:标记不可调度的Worker节点;从APIServer获取所述不可调度的Worker节点上的所有Pods;获取需要删除的Pod所属的Controller;修改所述需要删除的Pod所属的Controller中的PodTemplate;若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。通过上述步骤可避免了直接删除对应Worker节点上的Pod,进而导致Deployment或StatefulSet资源的Pod达不到所设置的策略数,或所有可用实例全部被删除,导致应用不可用的问题。

【技术实现步骤摘要】
一种安全驱逐Kubernetes集群中节点的方法和存储设备
本专利技术涉及计算机
,特别涉及一种安全驱逐Kubernetes集群中节点的方法和存储设备。
技术介绍
Kubernetes(简称K8S)集群往往有许多Worker节点组成,这些Worker节点有时需要停机进行维护,例如:LinuxKernel爆出漏洞,更换坏掉的磁盘等等。目前常用的维护方式是采用K8S提供的“kubectldrain”命令来完成,而该命令存在一个问题,其会忽略资源所定义的UpdateStrategy,而直接删除对应Worker节点上的Pod,进而导致Deployment或StatefulSet资源的Pod达不到所设置的策略数。极端情况下可能还会造成应用的所有可用实例全部被删除,导致应用不可用。
技术实现思路
为此,需要提供一种安全驱逐Kubernetes集群中节点的方法,用以解决K8S中采用“kubectldrain”命令会忽略资源所定义的UpdateStrategy,而直接删除对应Worker节点上的Pod而导致的一系列问题,具体技术方案如下:一种安全驱逐Kubernetes集群中节点的方法,包括步骤:标记不可调度的Worker节点;从APIServer获取所述不可调度的Worker节点上的所有Pods;获取需要删除的Pod所属的Controller;修改所述需要删除的Pod所属的Controller中的PodTemplate;若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。进一步的,所述“获取需要删除的Pod所属的Controller”前,还包括步骤:通过命令行工具设置需要删除的Podlabels;根据所述Podlabels过滤掉不需要删除的Pods节点。进一步的,所述“标记不可调度的Worker节点”,还包括步骤:根据预设规则得需要维护的Worker节点,将所述需要维护的Worker节点标记为不可调度的Worker节点。进一步的,所述“修改所述需要删除的Pod所属的Controller中的PodTemplate”,还包括步骤:对所述PodTemplate中任意一个不影响逻辑的字段进行修改。为解决上述技术问题,还提供了一种存储设备,具体技术方案如下:一种存储设备,其中存储有指令集,所述指令集用于执行:标记不可调度的Worker节点;从APIServer获取所述不可调度的Worker节点上的所有Pods;获取需要删除的Pod所属的Controller;修改所述需要删除的Pod所属的Controller中的PodTemplate;若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。进一步的,所述指令集还用于执行:所述“获取需要删除的Pod所属的Controller”前,还包括步骤:通过命令行工具设置需要删除的Podlabels;根据所述Podlabels过滤掉不需要删除的Pods节点。进一步的,所述指令集还用于执行:所述“标记不可调度的Worker节点”,还包括步骤:根据预设规则得需要维护的Worker节点,将所述需要维护的Worker节点标记为不可调度的Worker节点。进一步的,所述指令集还用于执行:所述“修改所述需要删除的Pod所属的Controller中的PodTemplate”,还包括步骤:对所述PodTemplate中任意一个不影响逻辑的字段进行修改。本专利技术的有益效果是:在本技术方案中,通过标记不可调度的Worker节点;从APIServer获取所述不可调度的Worker节点上的所有Pods;获取需要删除的Pod所属的Controller;修改所述需要删除的Pod所属的Controller中的PodTemplate;若是现有的技术,会直接将不可调度的Worker节点上的所有Pods直接删除,而在本方案中,若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod,即根据预设的UpdateStrategy对Pod进行新建和删除。可避免了直接删除对应Worker节点上的Pod,进而导致Deployment或StatefulSet资源的Pod达不到所设置的策略数,或所有可用实例全部被删除,导致应用不可用的问题。附图说明图1为具体实施方式所述一种安全驱逐Kubernetes集群中节点的方法的流程图;图2为具体实施方式所述一种安全驱逐Kubernetes集群中节点的方法的时序图;图3为具体实施方式所述一种存储设备的模块示意图。附图标记说明:300、存储设备。具体实施方式为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。请参阅图1,在本实施方式中,一种安全驱逐Kubernetes集群中节点的方法可应用在一种存储设备上,所述存储设备包括但不限于:服务器。具体实施可如下:步骤S101:标记不可调度的Worker节点。步骤S102:从APIServer获取所述不可调度的Worker节点上的所有Pods。步骤S103:获取需要删除的Pod所属的Controller。步骤S104:修改所述需要删除的Pod所属的Controller中的PodTemplate。步骤S105:若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。其中步骤S101还包括步骤:根据预设规则得需要维护的Worker节点,将所述需要维护的Worker节点标记为不可调度的Worker节点。标记好不可调度的Worker节点后,执行步骤S102:从APIServer获取所述不可调度的Worker节点上的所有Pods,即获取需要维护的Worker节点上的所有Pods,获取好后。执行步骤S103,其中步骤S103之前,还包括步骤:通过命令行工具设置需要删除的Podlabels;根据所述Podlabels过滤掉不需要删除的Pods节点。具体可如下:通过命令行工具设置需要删除的Podlabels,及忽略DaemonSet等能力,处理程序会根据这些传入的信息对取到的Pods进行一次过滤和筛选,过滤掉不需要删除的Pod节点,筛选出需要删除的Pod节点。筛选出需要删除的Pod节点后,执行步骤S104:修改所述需要删除的Pod所属的Controller中的PodTemplate。因Controller会监控Po本文档来自技高网
...

【技术保护点】
1.一种安全驱逐Kubernetes集群中节点的方法,其特征在于,包括步骤:/n标记不可调度的Worker节点;/n从APIServer获取所述不可调度的Worker节点上的所有Pods;/n获取需要删除的Pod所属的Controller;/n修改所述需要删除的Pod所属的Controller中的PodTemplate;/n若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。/n

【技术特征摘要】
1.一种安全驱逐Kubernetes集群中节点的方法,其特征在于,包括步骤:
标记不可调度的Worker节点;
从APIServer获取所述不可调度的Worker节点上的所有Pods;
获取需要删除的Pod所属的Controller;
修改所述需要删除的Pod所属的Controller中的PodTemplate;
若所述Controller监听到对应的PodTemplate发生了变更,则所述Controller根据预设的UpdateStrategy重建Pod。


2.根据权利要求1所述的一种安全驱逐Kubernetes集群中节点的方法,其特征在于,
所述“获取需要删除的Pod所属的Controller”前,还包括步骤:
通过命令行工具设置需要删除的Podlabels;
根据所述Podlabels过滤掉不需要删除的Pods节点。


3.根据权利要求1所述的一种安全驱逐Kubernetes集群中节点的方法,其特征在于,
所述“标记不可调度的Worker节点”,还包括步骤:根据预设规则得需要维护的Worker节点,将所述需要维护的Worker节点标记为不可调度的Worker节点。


4.根据权利要求1所述的一种安全驱逐Kubernetes集群中节点的方法,其特征在于,
所述“修改所述需要删除的Pod所属的Controller中的PodTemplate”,还包括步骤:
对所述PodTemplate中任意一个不影响逻辑的...

【专利技术属性】
技术研发人员:马坚张万能林剑林灿辉黄超
申请(专利权)人:福建健康之路信息技术有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1