我现在准备试图用一个集群来管理处于不同地域,并且业务功能不同的节点,比如一部分节点在广州,一部分节点在北京,他们承担的是完全不同的任务。按常理来说,其实他们应该是处于两个不同集群效果最好。因为这两个地区的节点群实际上是不能互相共享计算资源的。比如说 A 程序就只能把副本建立在北京区域的节点群里。我是了解到 k8s 可以限制副本指定创建在特定 tag 的节点群上时,有这样的想法的,主要是我的节点也不多,我不想耗费更多的计算资源,再去建立一个集群。
但是我看到各大云厂商的 k8s 面板,他们都明确提到,如果你要增加 work 节点,则节点必须在集群的同一地域,同一 VPC 下。
显然,似乎更专业的看法是 work 节点最好在一个地域内,那么,不在一个地域内的节点处于一个集群到底会有什么问题呢,请假各位?
跨云厂商部署?
我用 k3s 自已跨云厂商部署了一套,一部分是国外机器(两台),一部分是国内的机器(两台),目前部署了两个应用和 cert-manager
延迟吧肯定是有的 我这里测大概 pod 间通信都是几百毫秒,位置的话国内腾讯云到国外韩国机器
应用部署的时候我指定了要么全在国内要么全在国外,要是跨区域肯定会有一些延迟,不过你如果全在国内的话还好,可以指定下调度策略,把一部分 pod 调度到某个区域里
pod 间的网络 我前段时间给装的 prometheus 监控 网络 看监控断过一两次,不过不是很影响,要是全是在国内的话应该挺稳的
部署的话主要是要修改下 server 和 agent 的通信 ip --node-external-ip 和 node-ip 这两个选项
可以了解一下 nomad 的做法 https://www.nomadproject.io