掌桥专利:专业的专利平台
掌桥专利
首页

物联网操作系统中一种先进的k8s集群互相通信方法

文献发布时间:2023-06-19 16:04:54



技术领域

本发明涉及一种k8s服务访问方法,更具体的说是涉及一种物联网操作系统中一种先进的k8s集群互相通信方法。

背景技术

k8s基于Cluster IP的网络模型决定了运行在k8s的资源(Service/Pod)是与外部网络隔离的,那么如果当运行在k8s的容器发生了异常时,对错误原因的定位和调试会变得很复杂,特别是在开发、测试、联调过程中,需要频繁对问题进行定位;

目前在k8s集群外k8s集群的方式主要有:

1.代理模式:通过screen kubectl proxy代理+证书

2.非代理模式:开启NodePort或LoadBalancer

这两种方式均有以下缺点:1-对运维能力要求较高,2-基本都是命令行方式无可视化,3-缺少健康监控,系统存在不稳定因素等。

发明内容

针对现有技术存在的不足,本发明的目的在于提供一种物联网操作系统中一种先进的k8s集群互相通信方法,实现了本地与k8s集群的互相通信。

为实现上述目的,本发明提供了如下技术方案:一种物联网操作系统中一种先进的k8s集群互相通信方法,包括如下步骤:

步骤一,在本地网络设置联调助手客户端,在k8s集群内设置联调助手服务端;步骤二,本地网络通过联调助手客户端访问联调助手服务端来访问k8s集群;

步骤三,k8s集群通过联调助手服务端访问联调助手客户端来访问本地网络。作为本发明的进一步改进,所述步骤二中本地网络访问k8s集群的具体步骤如下:

步骤二一,联调助手客户端启动时自动向联调助手服务端注册自身信息,并持续发送心跳;

步骤二二,联调助手服务端返回service信息至联调助手客户端,联调助手客户端根据联调助手服务端返回的service信息修改本机Host和路由表信息;

步骤二三,联调助手服务端接收到联调助手客户端的注册请求后,创建对应的资源shadow,并创建客户端与shadow信息的映射,若客户端心跳发送停止,则删除创建的资源shadow;

步骤二四,联调助手客户端对本地网络发送的TCP/UDP/HTTP请求进行抓包并转发到本地10800端口;

步骤二五,k8s的kubectl工具实时监听10800端口,当TCP/UDP/HTTP请求发送到10800端口时,将会被转发到k8s的shadow中;

步骤二六,shadow接收到TCP/UDP/HTTP请求后,通过sshuttle重新建立对目标的连接,TCP/UDP/HTTP请求被转发。

作为本发明的进一步改进,所述步骤二一中联调助手客户端启动连接联调助手服务端的具体步骤如下:

步骤1,启动时联调助手客户端向OS索取用户名和密码进行基础验证进行登录鉴权,若校验通过则表示登录成功,继续下一步;

步骤2,检测联调助手服务端是否在线,若不在线则给与服务不在线提示,若在线则继续下一步;

步骤3,联调助手客户端检测是否存k8s鉴权信息,联调助手服务端收到信息后将k8s鉴权信息、路由规则响应给联调助手客户端并创建shadow,shadow创建成功后,建立联调助手客户端与shadow的映射关系并作持久化;联调助手服务端的心跳监听器新增一条联调助手客户端的记录;

步骤4,联调助手客户端收到联调助手服务端响应的k8s鉴权信息和路由规则信息后,检测、安装、设置虚拟网卡,并将鉴权信息保存成本地文件,并根据路由规则信息修改本地路由规则以及Host信息;

步骤5,联调助手客户端以每5s一次的频率向服务端报告自身信息,此时联调助手客户端启动完毕。

作为本发明的进一步改进,所述步骤1中在用户登录时判断本地是否已有登录记录,若有则默认填充,否则输入用户名密码或选择证书地址,且在登录鉴权失败时,直接抛出错误并返回登录页,等待用户重新输入,同时在登录鉴权成功时,判断是否需要进行登录记录的持久化,如果是则将用户名/密码持久化到记录记录。

作为本发明的进一步改进,所述步骤2中在检测联调助手服务端在线后,联调助手客户端向联调助手服务端法器连接建立的请求,如果联调助手服务端响应失败,则抛出“连接建立失败”提示,否则对响应内容进行解析,内容包括k8s路由信息、加密后认证信息、shadow信息。

作为本发明的进一步改进,所述步骤4中安装虚拟网卡的具体步骤如下:

步骤41,检查本地是否存在tun网卡,如果不存在则安装;

步骤42,设置网卡信息,将网卡的DNS地址设置为shadowIP,网卡IPv4地址设置为:10.10.0.2,网关地址设置为10.10.0.1,同时设置路由信息,修改本地路由表规则,根据认证信息生成认证文件并将路径持久化到记录文件。

作为本发明的进一步改进,所述步骤二五中kubectl工具执行kubectl port-forward命令,开启监听本地端口10800,并将所有路由匹配的流量转发到本地10800端口,kubectl port-forward将10800端口的流量转发到shadow的10800端口。

作为本发明的进一步改进,所述步骤三中k8s集群访问本地网络的具体步骤如下:

步骤三一,联调助手客户端发起交换模式请求,指明信息交换的服务名;

步骤三二,联调助手服务端收到请求后修改目标服务的标签label信息,使service不再使用原有Pod信息;

步骤三三,联调助手客户端修改Deployment信息,删除原有Pod,并创建shadow信息使service的selector关联到shaodow;

步骤三四,在Local和k8s之间建立通道,利用kubectl的port-forward能力将请求到shadow的信息转发到本地10800端口;

步骤三五,通过SSH远程转发,将本地10800端口数据转发到本地应用端口。作为本发明的进一步改进,所述k8s集群访问本地网络还包括以下步骤:

步骤三六,联调助手服务端进行心跳监听,在联调助手客户端主动发起停止交换请求或联调助手服务端未监听到联调助手客户端心跳,则将Label重置并删除创建的shadow信息,将修改全部回滚。

本发明的有益效果,采用联调助手客户端与联调助手服务端的配合作用,利用以上两者时间相互访问的方式构建出k8s集群与本地网络之间的互相通信,降低了运维能力要求,同时采用联调助手客户端的存在,可实现可视化操作,人机交互功能更加的友好。

附图说明

图1为本地访问k8s集群的示意图;

图2为k8s集群访问本地的示意图;

图3为应用本发明方法的系统架构示意图;

图4为客户端架构示意图;

图5为服务端架构示意图;

图6为联调助手客户端连接到k8s的时序图;

图7为联调助手客户端与联调助手服务端连接的流程图;

图8为客户端请求转发的原理图。

具体实施方式

下面将结合附图所给出的实施例对本发明做进一步的详述。

参照图1所示,本实施例的一种物联网操作系统中一种先进的k8s集群互相通信方法,其特征在于:包括如下步骤:

步骤一,在本地网络设置联调助手客户端,在k8s集群内设置联调助手服务端;步骤二,本地网络通过联调助手客户端访问联调助手服务端来访问k8s集群;

步骤三,k8s集群通过联调助手服务端访问联调助手客户端来访问本地网络,在使用本实施例的访问方法的过程中,只需要先构建联调助手客户端和联调助手服务端即可,然后执行步骤一至步骤三利用联调助手客户端和联调助手服务端建立本地与k8s网络的互相通信,之后可通过联调助手客户端的可视化界面实现对于k8s网络的内部操作,如此相比于现有技术中的通信方式,运维要求能力更低,且人机交互功能更加的友好。

作为改进的一种具体实施方式,参照图1和图8所示,所述步骤二中本地网络访问k8s集群的具体步骤如下:

步骤二一,联调助手客户端启动时自动向联调助手服务端注册自身信息,并持续发送心跳;

步骤二二,联调助手服务端返回service信息至联调助手客户端,联调助手客户端根据联调助手服务端返回的service信息修改本机Host和路由表信息;

步骤二三,联调助手服务端接收到联调助手客户端的注册请求后,创建对应的资源shadow,并创建客户端与shadow信息的映射,若客户端心跳发送停止,则删除创建的资源shadow;

步骤二四,联调助手客户端对本地网络发送的TCP/UDP/HTTP请求进行抓包并转发到本地10800端口;

步骤二五,k8s的kubectl工具实时监听10800端口,当TCP/UDP/HTTP请求发送到10800端口时,将会被转发到k8s的shadow中;

步骤二六,shadow接收到TCP/UDP/HTTP请求后,通过sshuttle重新建立对目标的连接,TCP/UDP/HTTP请求被转发,通过上述步骤的设置,联调助手客户端通过两个不同用途的shadow实现了本地与k8s的相互通信,实现了TCP/UDP/HTTP请求的直接通信转发。

作为改进的一种具体实施方式,参照图6和图7所示,所述步骤二一中联调助手客户端启动连接联调助手服务端的具体步骤如下:

步骤1,启动时联调助手客户端向OS索取用户名和密码进行基础验证进行登录鉴权,若校验通过则表示登录成功,继续下一步;

步骤2,检测联调助手服务端是否在线,若不在线则给与服务不在线提示,若在线则继续下一步;

步骤3,联调助手客户端检测是否存k8s鉴权信息,联调助手服务端收到信息后将k8s鉴权信息、路由规则响应给联调助手客户端并创建shadow,shadow创建成功后,建立联调助手客户端与shadow的映射关系并作持久化;联调助手服务端的心跳监听器新增一条联调助手客户端的记录;

步骤4,联调助手客户端收到联调助手服务端响应的k8s鉴权信息和路由规则信息后,检测、安装、设置虚拟网卡,并将鉴权信息保存成本地文件,并根据路由规则信息修改本地路由规则以及Host信息;

步骤5,联调助手客户端以每5s一次的频率向服务端报告自身信息,此时联调助手客户端启动完毕,通过上述步骤的设置可在联调助手客户端启动时进行身份安全验证,同时实现自动化的对本地路由规则以及Host信息进行修改,使得本地网络与k8s网络能够更快的建立起互相通信,实现了一键式服务启动及自动开启代理,简单、快速、高效、易用,且联调助手客户端与联调助手服务端的交互均需要安全证书认证,而证书内容加密仅对联调助手客户端可读,提高了安全性。

作为改进的一种具体实施方式,所述步骤1中在用户登录时判断本地是否已有登录记录,若有则默认填充,否则输入用户名密码或选择证书地址,且在登录鉴权失败时,直接抛出错误并返回登录页,等待用户重新输入,同时在登录鉴权成功时,判断是否需要进行登录记录的持久化,如果是则将用户名/密码持久化到记录记录,通过上述方式可实现自动化记录正确的登录信息,方便用户下次登录操作。

作为改进的一种具体实施方式,所述步骤2中在检测联调助手服务端在线后,联调助手客户端向联调助手服务端法器连接建立的请求,如果联调助手服务端响应失败,则抛出“连接建立失败”提示,否则对响应内容进行解析,内容包括k8s路由信息、加密后认证信息、shadow信息,采用上述方式可优先保障联调助手客户端与联调助手服务端之间的连接,在保证连接了以后再对响应内容进行解析,有效的节约了计算资源。

作为改进的一种具体实施方式,所述步骤4中安装虚拟网卡的具体步骤如下:步骤41,检查本地是否存在tun网卡,如果不存在则安装;

步骤42,设置网卡信息,将网卡的DNS地址设置为shadowIP,网卡IPv4地址设置为:10.10.0.2,网关地址设置为10.10.0.1,同时设置路由信息,修改本地路由表规则,根据认证信息生成认证文件并将路径持久化到记录文件,采用上述步骤的设置,便可简单有效的安装虚拟网卡,以此更好更有效的构建本地与k8s网络的互相通信。

作为改进的一种具体实施方式,所述步骤二五中kubectl工具执行kubectl port-forward命令,开启监听本地端口10800,并将所有路由匹配的流量转发到本地10800端口,kubectl port-forward将10800端口的流量转发到shadow的10800端口,通过上述方式,可实现kubectl工具能够及时有效的进行数据转发操作。

作为改进的一种具体实施方式,参照图2所示,所述步骤三中k8s集群访问本地网络的具体步骤如下:

步骤三一,联调助手客户端发起交换模式请求,指明信息交换的服务名;

步骤三二,联调助手服务端收到请求后修改目标服务的标签label信息,使service不再使用原有Pod信息;

步骤三三,联调助手客户端修改Deployment信息,删除原有Pod,并创建shadow信息使service的selector关联到shaodow;

步骤三四,在Local和k8s之间建立通道,利用kubectl的port-forward能力将请求到shadow的信息转发到本地10800端口;

步骤三五,通过SSH远程转发,将本地10800端口数据转发到本地应用端口,采用上述步骤的设置,便可实现k8s集群访问本地网络,且能够自动化的更改相应的信息,降低了运维要求。

作为改进的一种具体实施方式,所述k8s集群访问本地网络还包括以下步骤:

步骤三六,联调助手服务端进行心跳监听,在联调助手客户端主动发起停止交换请求或联调助手服务端未监听到联调助手客户端心跳,则将Label重置并删除创建的shadow信息,将修改全部回滚,通过上述步骤,当客户端因断电、断网等意外而退出时,服务端根据用户状态及时调整或恢复系统设置,保证系统稳定。

本实施例中提供了应用上述方法的系统架构,参照图3、图4和图5所示,整体的系统架构为C/S架构,分为联调助手客户端和联调助手服务端;

其中,客户端分为3层架构:

应用层主要用于可视化,包括登录操作、日志查看、命名空间管理以及命名空间下的服务信息列表、连接状态等信息;

服务层主要服务于应用层,并对基础能力层具备管理能力,包括客户端注册信息到服务端、定时向服务端发送心跳、向服务端索取k8s相关信息以及日志记录等能力;

基础能力层主要用于跟操作系统的交互,包括权限能力检查、路由表信息与Host文件信息变更、虚拟网卡管理、执行ssh和kubectl命令等能力。

服务端架构相对简单只分为两层:

API层,包括客户端注册接口、心跳接口等能力;

服务层,包括客户端注册、心跳检测、k8s资源管理和日志记录等能力综上所述,本实施例的方法,充分考虑了用户的使用便捷性和系统的稳定性,具备以下优点:

易用:一键式服务启动及自动开启代理,简单、快速、高效稳定:当客户端因断电、断网等意外而退出时,服务端根据用户状态及时调整或恢复系统设置,保证系统稳定;

安全:联调助手客户端与服务端的交互均需要安全证书认证,而证书内容加密仅对客户端可读,提高了安全性。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 物联网操作系统中一种先进的k8s集群互相通信方法
  • 基于K8s集群的音/视频通信系统、方法、介质及计算设备
技术分类

06120114693452