容器拨号open***

应用场景:
在生产环境中有两个宿主机在边缘机房中,两个主机组成了一个k3s集群。由于业务需求需要把一些数据上传到数据中心存储,为了数据传输安全所以选择使用***加密隧道方式传输。传统做法就是两个主机都拨一个***链接然后在主机上配置回数据中心的路由,这样pod中的应用就可以用宿主机的***传输数据了。但是这个解决方案不具备通用性,因为***的账号数据会随着宿主机的增加而增加,产生大量的维护工作量。最好的解决方案就是封装成一个镜像采用和业务程序一样的部署到k3s集群中。
实现方式:
使用docker封包open***镜像、传输数据的业务程序单独封装成镜像。在k3s上部署的时候采用多容器方式部署deployment。由于pod中所有容器的网络空间是共享的,所以当open***的镜像拨号成功后业务容器也能使用到这个open***链路。
需要注意的是:
为了通用性,open***的账号密码使用配置方式通过k3s挂载上去。另外open***的容器在运行时需要添加NET_ADMIN的权限,同时挂载宿主机的文件/dev/net/tun到容器的/dev/net/tun路径中。否则是无法拨号成功的。

猜你喜欢

转载自blog.51cto.com/denwork/2555518