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

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

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

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

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

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

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

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

    自己折腾还行,生产就不建议了。。
    kennylam777
        10
    kennylam777  
       2021-06-07 05:59:31 +08:00 via Android
    我用 Kubespray 自建,選用 kube router 的 CNI 是可以的,但底層網絡必需可靠,但我沒有國內伺服器問題不大。

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