V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcbuzhiming
V2EX  ›  Kubernetes

k8s 可否用一个集群来管理处于不同地域,不同任务的 work 节点

  •  
  •   abcbuzhiming · 183 天前 · 1632 次点击
    这是一个创建于 183 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在准备试图用一个集群来管理处于不同地域,并且业务功能不同的节点,比如一部分节点在广州,一部分节点在北京,他们承担的是完全不同的任务。按常理来说,其实他们应该是处于两个不同集群效果最好。因为这两个地区的节点群实际上是不能互相共享计算资源的。比如说 A 程序就只能把副本建立在北京区域的节点群里。我是了解到 k8s 可以限制副本指定创建在特定 tag 的节点群上时,有这样的想法的,主要是我的节点也不多,我不想耗费更多的计算资源,再去建立一个集群。

    但是我看到各大云厂商的 k8s 面板,他们都明确提到,如果你要增加 work 节点,则节点必须在集群的同一地域,同一 VPC 下。

    显然,似乎更专业的看法是 work 节点最好在一个地域内,那么,不在一个地域内的节点处于一个集群到底会有什么问题呢,请假各位?
    16 条回复    2021-06-09 17:47:10 +08:00
    Rheinmetal
        1
    Rheinmetal  
       183 天前
    从更高层次的抽象来讲,可以给每个节点分配标签嘛,然后按照地域调度。
    只不过这样折腾有什么好处,有什么坏处呢?
    一个控制平面带得动这节点吗?
    延迟不均匀的话,就会像 amdepyc 一代各个核之间的延迟都能搞一个矩阵出来。集群里面跑的应用性能会降低。
    mingqing
        2
    mingqing  
       183 天前
    你要的可能是边缘计算、统一中心管控的场景,可以看看 kubeedge 或者 k3s 之类的
    rrfeng
        3
    rrfeng  
       182 天前 via Android
    云上肯定不行了,你自己建 k8s 然后打通网络是没问题的。注意通信安全性和各种超时时间调整。
    kubeedge 专门干这个的,可以参考一下。
    labulaka521
        4
    labulaka521  
       182 天前 via iPhone
    跨云厂商部署?
    我用 k3s 自已跨云厂商部署了一套,一部分是国外机器(两台),一部分是国内的机器(两台),目前部署了两个应用和 cert-manager
    Rheinmetal
        5
    Rheinmetal  
       182 天前
    @labulaka521 请问有无 blog 教程
    应用延迟体验如何?
    调度会不会慢呀
    pod 间网络断过没
    labulaka521
        6
    labulaka521  
       182 天前 via iPhone   ❤️ 1
    @Rheinmetal 一直想记录下来,但是没写,
    延迟吧肯定是有的 我这里测大概 pod 间通信都是几百毫秒,位置的话国内腾讯云到国外韩国机器
    应用部署的时候我指定了要么全在国内要么全在国外,要是跨区域肯定会有一些延迟,不过你如果全在国内的话还好,可以指定下调度策略,把一部分 pod 调度到某个区域里
    pod 间的网络 我前段时间给装的 prometheus 监控 网络 看监控断过一两次,不过不是很影响,要是全是在国内的话应该挺稳的
    部署的话主要是要修改下 server 和 agent 的通信 ip --node-external-ip 和 node-ip 这两个选项
    mason961125
        7
    mason961125  
       182 天前
    可以了解一下 nomad 的做法 https://www.nomadproject.io
    m4d3bug
        8
    m4d3bug  
       182 天前 via Android
    ManjusakaL
        9
    ManjusakaL  
       182 天前
    还是网络问题

    同一个地域的同一个 VPC 下,K8S 管控平面之间的网络相对稳定

    但是跨地域后,没法保证稳定性啊。

    另外一个层面上的网络问题是指你集群内的网络怎么做?

    自己折腾还行,生产就不建议了。。
    kennylam777
        10
    kennylam777  
       182 天前 via Android
    我用 Kubespray 自建,選用 kube router 的 CNI 是可以的,但底層網絡必需可靠,但我沒有國內伺服器問題不大。

    網絡是自己用 VPN + FRR 搭
    kennylam777
        11
    kennylam777  
       182 天前 via Android
    說漏了,基本上 worker 節點距離問題不大,最重要的是 etcd 節點距離不能太遠,200ms 以上可能會有問題,要小心設定 heartbeat 時間。
    salmon5
        12
    salmon5  
       182 天前
    带宽、稳定性、成本,同地域能够保证免费 nGbps 带宽,跨了地域可以了解下这个成本
    salmon5
        13
    salmon5  
       182 天前
    广州到北京的一条 10G 专线,估计至少上千万 /年,有专业的可以分析下
    jingslunt
        14
    jingslunt  
       181 天前
    集群联邦模式,可以管理多个集群
    kubernetes.io/blog/2018/12/12/kubernetes-federation-evolution
    jingslunt
        15
    jingslunt  
       181 天前
    @ManjusakaL 使用 calico 的 IP-IP 模式也是可以做到。
    貌似青云的也有这方面的解决方案 kubesphere.io/ IP-IP
    blue7wings
        16
    blue7wings  
       179 天前
    我是通过 rancher,calico 网络完成谷歌云,腾讯与跨区域搭建集群的
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4019 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    ♥ Do have faith in what you're doing.