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

求助:打算让业务 Pod 在 K8s 的 master 节点上运行,有哪些点需要注意?

  •  
  •   zhoudaiyu · 2023-06-21 15:22:18 +08:00 · 1374 次点击
    这是一个创建于 531 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们的 1.24.4 的生产 K8s 集群机器是 13 台 ARM 架构物理机搭建的,计算资源配置是 64C 、384G ,其中有 3 台是 master 节点,目前只跑了 master 的组件,如 api-server 、scheduler 、controller-manager 、kubelet 、etcd 等,因为现在计算资源紧张,而且如此高性能的 master 节点只跑这些组件缺失感觉有些浪费。因此打算把 master 也加入业务容器可调度的节点方位内。目前有两种方案,第一种:我们人工选择部分业务并配置容忍 master 不可调度的污点(修改应用的 Deployment )来实现他们在 master 节点的运行,由于我们有一些应用的资源使用的统计数据,因此对 master 节点的影响较为可控(比较担心影响 etcd ,虽然 IO 层面 master 节点的 etcd 的目录在单独的磁盘上,但是还是怕计算资源不够用);还有一种方式是直接把 master 的污点给去掉,让 Pod 可以随便调度到 master 节点上,这样比较省事,不用我们筛选应用,但是非常担心 master 的组件受到的应用影响,从而集群失控。请问大家对这 2 套方案有啥建议呢?十分感谢!
    6 条回复    2023-06-22 16:26:32 +08:00
    defunct9
        1
    defunct9  
       2023-06-21 15:24:06 +08:00
    当然第一种
    defunct9
        2
    defunct9  
       2023-06-21 15:25:50 +08:00   ❤️ 1
    理由是我们 ingress 很闲置,就被随便调度 pod 上去了,然后一个节点就宏机了,瞬间山河一片红,pod 大批量迁移。
    所以打了污点禁止调度到 ingress 。你这个情况要调度也只能调度你知根知底的 pod 上去,放开随便调度就是找死。
    asilin
        3
    asilin  
       2023-06-21 16:01:08 +08:00   ❤️ 1
    k8s 内建支持这种特性,将污点的值改为 PreferNoSchedule 即可,表示 Pod 不到万不得已不会调度到 master 节点
    wandehul
        4
    wandehul  
       2023-06-21 16:05:27 +08:00
    还是不建议调度到 master 上去, 完全是给自己找事情
    CheckMySoul
        5
    CheckMySoul  
       2023-06-21 16:16:30 +08:00
    选第一种,调度来的应用严格配置 CPU 内存临时磁盘限制。或者你找下,把 ingress 之类的资源从计算挪到控制节点,腾出计算资源。
    xinmans
        6
    xinmans  
       2023-06-22 16:26:32 +08:00
    master 机器用 kvm 做个虚拟化,搞成几台 VM ,master 放其中一台 VM (绑定物理 core ,避免争抢),其他 VM 拿出来调度 pod 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:52 · PVG 02:52 · LAX 10:52 · JFK 13:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.