一种Kubernetes环境自动化管理虚拟IP的方法技术

技术编号:24176039 阅读:66 留言:0更新日期:2020-05-16 04:40
本发明专利技术公开一种Kubernetes环境自动化管理虚拟IP的方法,涉及计算机技术领域,该方法首先定义Pod所需的RBAC相关权限操作和使用Configmap定义Shell函数实现的五个基本操作,然后通过Deployment管理单点Pod运行busybox镜像并挂载Configmap,通过Kubernetes客户端实现目标计算机运行虚拟IP,并且当该计算机发生故障时自动实现虚拟IP切换到正常计算机。本方法一方面可以借助Kubernetes集群的节点检查和Pod自动迁移方便实现虚拟IP的平滑迁移,另一方面使用busybox镜像和Shell函数与主流方式Keepalived相比缩小了镜像大小和简化了配置,并且不要求计算机网卡支持VRRP协议以及不同节点需要不同配置,保证了配置的稳定,大大提升了易用性和可管理性。

【技术实现步骤摘要】
一种Kubernetes环境自动化管理虚拟IP的方法
本专利技术涉及计算机
,具体的说是一种Kubernetes环境自动化管理虚拟IP的方法。
技术介绍
虚拟IP(VIP)是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口。VIP大部分用于连接冗余,一个VIP地址可在一台计算机或NIC发生故障时可用,交由另一个可选计算机或NIC响应连接。目前实现虚拟IP的主流方式是Keepalived,通过调用用户提供的脚本定时检测计算机的状态,如果有一台计算机出现故障,Keepalived检测到会将有故障的计算机从自身系统中剔除,同时使用其他计算机代替该计算机的工作;当计算机正常后Keepalived自动将其加回到自身系统中,无需人工干涉。但是Keepalived的实现要求NIC支持VRRP协议,每个计算机需要配置不同的优先级;同时需要用户自定义检测脚本,一旦脚本编写不规范,就会影响计算机发生故障时VIP的自动切换。
技术实现思路
本专利技术针对目前技术发展的需求和不足之处,提供一种Kubernetes环境自动化管理虚拟IP的方法,借助Kubernetes检查计算机状态并在计算机发生故障时Pod自动迁移到其他计算机,保证VIP平滑迁移。本专利技术的一种Kubernetes环境自动化管理虚拟IP的方法,解决上述技术问题采用的技术方案如下:一种Kubernetes环境自动化管理虚拟IP的方法,该方法首先定义Pod所需的RBAC相关权限操作和使用Configmap定义Shell函数实现的五个基本操作,然后通过Deployment管理单点Pod运行busybox镜像并挂载Configmap,通过Kubernetes客户端实现目标计算机运行虚拟IP,并且当该计算机发生故障时自动实现虚拟IP切换到正常计算机。可选的,定义Pod所需的RBAC相关权限操作,包括定义ServiceAccount、Role和ClusterRole,并将定义的ServiceAccount与Role和ClusterRole进行绑定,保证ServiceAccount具有基本的Kubernetes对象CRUD权限。进一步可选的,使用Configmap定义Shell函数实现的五个基本操作,所述的五个基本操作包括加载内核模块dummy、创建虚拟网卡和配置虚拟IP、睡眠、删除虚拟IP和清理虚拟网卡、检查虚拟网卡的虚拟IP是否正常。进一步可选的,通过Deployment管理单点Pod运行busybox镜像的过程中,首先,用户账户serviceAccountName配置定义的ServiceAccount,节点选择nodeSelector配置节点标签,卷挂载volumes配置Configmap;其次,使用初始化容器initContainers实现加载内核模块dummy,创建虚拟网卡配置虚拟IP;随后,Pod运行睡眠并通过健康检查readinessProbe和livenessProbe调用检查脚本,定时检查虚拟网卡的虚拟IP是否正常;最后,Pod结束前,使用生命周期管理lifecycle的回调函数preStop进行容器被终止前的任务,即删除虚拟IP和清理虚拟网卡。这样Pod调度到其他计算机时创建虚拟网卡配置的虚拟IP不会与Pod调度前所在的计算机上的虚拟网卡承载的虚拟IP冲突。进一步可选的,使用初始化容器initContainers实现加载内核模块dummy,创建虚拟网卡配置虚拟IP,这一操作具体包括:通过Deployment定义初始化容器initContainers,此时,第一个容器Container调用加载内核模块dummy操作,保证第二个容器可以创建dummy类型的虚拟网卡并承载虚拟IP;第二个容器Container调用创建虚拟网卡和配置虚拟IP操作,其中虚拟网卡类型为dummy,虚拟网卡名称可以任意,虚拟IP为规划的VIP地址。一般为计算机支持的网络地址段的一个未被占用的IP地址。优选的,Pod运行睡眠并通过健康检查readinessProbe和livenessProbe调用检查脚本,这一过程中,可以自行定义检查周期periodSeconds和超时时间timeoutSeconds。进一步可选的,通过Kubernetes客户端实现目标计算机运行虚拟IP,具体过程包括:Kubernets客户端创建定义的RBAC文件;Configmap文件和Deployment文件,实现在一台目标计算机创建虚拟网卡并承载虚拟IP供其他服务使用;Pod运行中会定时检查虚拟网卡的虚拟IP是否正常。进一步可选的,运行Pod的计算机发生故障时,故障计算机会删除虚拟IP和清理虚拟网卡;Pod自动迁移到其他状态正常的目标计算机时,加载内核模块dummy,创建虚拟网卡配置虚拟IP,完成虚拟IP的平滑迁移。进一步可选的,发生故障的计算机修复后,该计算机自动回归到Kubernetes集群的可调度节点队列中,接受Pod的下次调度,完成虚拟IP的新生命周期管理。本专利技术的一种Kubernetes环境自动化管理虚拟IP的方法,与现有技术相比具有的有益效果是:1)本专利技术使用busybox镜像和Shell函数相结合,借助Kubernetes检查计算机状态并在计算机发生故障时Pod自动迁移到其他计算机,保证VIP平滑迁移,与主流方式Keepalived的镜像和配置相比大大提升了易用性和可管理性,并可以满足生产环境其他服务使用虚拟IP的需求;2)本专利技术一方面可以借助Kubernetes集群的节点检查和Pod自动迁移方便实现虚拟IP的平滑迁移,另一方面使用busybox镜像和Shell函数与主流方式Keepalived相比缩小了镜像大小和简化了配置,并且不要求计算机网卡支持VRRP协议以及不同节点需要不同配置,保证了配置的稳定,大大提升了易用性和可管理性。具体实施方式为使本专利技术的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本专利技术的技术方案进行清楚、完整的描述。实施例一:本实施例提出一种Kubernetes环境自动化管理虚拟IP的方法,该方法首先定义Pod所需的RBAC相关权限操作和使用Configmap定义Shell函数实现的五个基本操作,然后通过Deployment管理单点Pod运行busybox镜像并挂载Configmap,通过Kubernetes客户端实现目标计算机运行虚拟IP,并且当该计算机发生故障时自动实现虚拟IP切换到正常计算机。在本实施例中,定义Pod所需的RBAC相关权限操作,包括定义ServiceAccount、Role和ClusterRole,并将定义的ServiceAccount与Role和ClusterRole进行绑定,保证ServiceAccount具有基本的Kuberne本文档来自技高网...

【技术保护点】
1.一种Kubernetes环境自动化管理虚拟IP的方法,其特征在于,该方法首先定义Pod所需的RBAC相关权限操作和使用Configmap定义Shell函数实现的五个基本操作,然后通过Deployment管理单点Pod运行busybox镜像并挂载Configmap,通过Kubernetes客户端实现目标计算机运行虚拟IP,并且当该计算机发生故障时自动实现虚拟IP切换到正常计算机。/n

【技术特征摘要】
1.一种Kubernetes环境自动化管理虚拟IP的方法,其特征在于,该方法首先定义Pod所需的RBAC相关权限操作和使用Configmap定义Shell函数实现的五个基本操作,然后通过Deployment管理单点Pod运行busybox镜像并挂载Configmap,通过Kubernetes客户端实现目标计算机运行虚拟IP,并且当该计算机发生故障时自动实现虚拟IP切换到正常计算机。


2.根据权利要求1所述的一种Kubernetes环境自动化管理虚拟IP的方法,其特征在于,定义Pod所需的RBAC相关权限操作,包括定义ServiceAccount、Role和ClusterRole,并将定义的ServiceAccount与Role和ClusterRole进行绑定,保证ServiceAccount具有基本的Kubernetes对象CRUD权限。


3.根据权利要求2所述的一种Kubernetes环境自动化管理虚拟IP的方法,其特征在于,使用Configmap定义Shell函数实现的五个基本操作,所述的五个基本操作包括加载内核模块dummy、创建虚拟网卡和配置虚拟IP、睡眠、删除虚拟IP和清理虚拟网卡、检查虚拟网卡的虚拟IP是否正常。


4.根据权利要求3所述的一种Kubernetes环境自动化管理虚拟IP的方法,其特征在于,通过Deployment管理单点Pod运行busybox镜像的过程中,
首先,用户账户serviceAccountName配置定义的ServiceAccount,节点选择nodeSelector配置节点标签,卷挂载volumes配置Configmap;
其次,使用初始化容器initContainers实现加载内核模块dummy,创建虚拟网卡配置虚拟IP;
随后,Pod运行睡眠并通过健康检查readinessProbe和livenessProbe调用检查脚本,定时检查虚拟网卡的虚拟IP是否正常;
最后,Pod结束前,使用生命周期管理lifecycle的回调函数preStop进行容器被终止前的任务,即删除虚拟IP和清理虚拟网卡。
<...

【专利技术属性】
技术研发人员:李珂潘峰蔡卫卫高传集
申请(专利权)人:浪潮云信息技术有限公司
类型:发明
国别省市:山东;37

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

1