k0s 是一个很不错的边缘以及iot k8s 平台,提供了快速的部署以及管理能力,但是我们很多时候还是需要进行跨区域进行部署以及业务访问的,跨区域的网络处理一般有点费事,比如是使用vpn 还是其他解决方案是有成本以及维护的问题的,以下是一个基于sd-wan 的尝试结局方法

参考玩法

k0s 集成sd-wan 解决跨区域部署使用的问题_解决方案

 

简单说明,对于不同zone 我们部署不同的组件,比如controller 以及workers,网络上直接使用kube-router, 因为我们通过sd-wan 直接将

所有节点都打通了(网络service 以及node pod ip 段),这样的网络是符合k8s对于网络的要求的,同时也能解决跨zone 的网络访问

一些问题

当然以上是有一些问题的:

  • 网络时延的影响,sd-wan 的时延会影响跨zone 业务访问的体验,可以通过标签以及部署调度的优先级处理
  • 镜像分发问题,对于镜像的使用处理分发的影响还是比较重要的,一般镜像都有一些大
  • 跨区域lb 问题,当然此问题方法很多,一种是使用域名这样可以规避一个ip 的问题,多区域优先使用本地的ip访问(需要结合dns)

说明

以上是一个简单的玩法,通过sd-wan 可以临时解决跨区域k0s 部署访问的问题,技术简单验证上是通过的,而且只要我们的sd-wan 网络够稳定,灵活性还是很不错的,比如基于easytier,zerotier,tailscale 等,实际上easytier 的稳定性以及灵活性还是很不错的,值得尝试下,当然对于k3s的玩法实际上也可以参考类似的,如果网络环境的确比较恶劣,选择其他更好支持离线的k8s 方案会更好一些

参考资料

https://docs.k0sproject.io/stable/high-availability/

https://github.com/tailscale/tailscale

https://github.com/zerotier/ZeroTierOne

https://github.com/EasyTier/Easytier

https://openyurt.io/

https://github.com/openyurtio/openyurt

https://kubeedge.io/

https://github.com/kubeedge/kubeedge