本发明涉及通信领域,特别是涉及一种实现vpn的方法、系统、设备及程序产品。
背景技术:
1、目前,容器集群的控制台服务,通常部署在容器引擎提供商的内部账号中,其中,控制台服务由容器集群的容器控制台实现;容器集群的控制台服务与租户购买的容器资源之间的网络是隔离的。为了通过控制台服务对租户购买的容器资源进行管理,租户在购买容器资源时,通常需要使用容器资源中api server(application programming interfaceserver,应用程序编程接口服务),并挂载公网的eip(elastic ip address,弹性ip地址)。这增加了租户的容器资源的安全隐患。例如,现有的kt-connect、telepresence需要开放k8s api server的公网访问能力;而且,每当新增一个租户或用户建立隧道时,需要在对应命名空间下创建一个pod用于转发流量,这增加了资源的消耗。
技术实现思路
1、针对现有技术的上述问题,本发明的实施例提供了一种实现vpn的方法、系统、设备及程序产品,基于websocket和tun设备实现vpn,打通了k8s集群和本地的互访。
2、为了实现上述目的,一方面,提供了一种实现vpn的方法,基于websocket和tun设备实现vpn,包括:
3、在k8s集群建立所述vpn的websocket服务端wtvs及在要访问k8s集群资源的用户端建立所述vpn的websocket客户端wtvc;
4、在所述wtvs端执行如下步骤:
5、配置默认连接密钥;
6、创建tun网卡、绑定ip并开启nat转发及ip转发;
7、获取自身pod的网卡ip,并配置所述k8s集群中各个k8s节点,以将所述wtvs端管理的vpn网段指向wtvs pod的网卡ip;
8、监听预先指定的端口,等待所述wtvc端的连接请求;
9、在所述wtvc端执行如下步骤:
10、通过预先配置的所述wtvs暴露的域名和预先配置的连接密钥建立与wtvs的连接;
11、等待下发的tun网卡ip地址、mtu和路由信息;
12、创建tun网卡、绑定所述下发的tun网卡ip地址、并根据所述下发的mtu和路由信息来配置所述wtvc端的mtu和路由信息;
13、在所述wtvs端和所述wtvc端实现互通。
14、优选地,所述的方法,还包括:
15、在所述k8s集群,ingress根据预先配置的域名升级websocket连接,并将所述连接转发给所述wtvs端。
16、优选地,所述的方法,还包括:
17、在所述k8s集群的ingress中配置证书。
18、优选地,所述的方法,还包括:
19、当所述wtvs端的pod重新部署时,同步路由信息。
20、优选地,所述的方法,所述下发的tun网卡ip地址包括:所述k8s集群的网络段和服务的网络段。
21、另一方面,提供了一种实现vpn的系统,包括:在k8s集群建立所述vpn的websocket服务端wtvs及在要访问k8s集群资源的用户端建立所述vpn的websocket客户端wtvc;所述wtvs和所述wtvs用于实现上文任一项所述的实现vpn的方法。
22、又一方面,提供了一种k8s集群系统,包括:在所述k8s集群中建立用于实现上文任一所述的实现vpn的方法的vpn的websocket服务端wtvs。
23、又一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由所述处理器执行以实现如上文任一所述的实现vpn的方法中所述的vpn的websocket客户端wtvc。
24、又一方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上文任一所述的方法的步骤。
25、上述技术方案具有如下技术效果:
26、使用本发明实施例的技术方案,基于websocket和tun设备实现了vpn,通过在k8s集群建立vpn的服务端wtvs及在要访问k8s集群资源的用户端建立vpn的客户端wtvc,不需要k8s api server的公网访问能力;新用户连接到vpn时新增一个连接,不需要再创建单独的pod;且,k8s集群内pod服务可以直接访问分配给客户端如企业内部的研发部门或研发人员vpn ip,实现双向互通,特别有助于研发的联调工作。
1.一种实现vpn的方法,其特征在于,基于websocket和tun设备实现vpn,包括:
2.根据权利要求1所述的方法,其特征在于,还包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求1所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,所述下发的tun网卡ip地址包括:所述k8s集群的网络段和服务的网络段。
6.一种实现vpn的系统,其特征在于,包括:在k8s集群建立所述vpn的websocket服务端wtvs及在要访问k8s集群资源的用户端建立所述vpn的websocket客户端wtvc;所述wtvs和所述wtvs用于实现权利要求1-5中任一项所述的实现vpn的方法。
7.一种k8s集群系统,其特征在于,在所述k8s集群中建立用于实现权利要求1-5中任一项所述的实现vpn的方法的vpn的websocket服务端wtvs。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有至少一段程序,所述至少一段程序由所述处理器执行以实现如权利要求1至5任一所述的实现vpn的方法中所述的vpn的websocket客户端wtvc。
9.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一所述的方法的步骤。
