想问一个 k8s 调度问题,这种调度能实现吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ptrees
V2EX    Kubernetes

想问一个 k8s 调度问题,这种调度能实现吗

  •  
  •   ptrees 2021-04-28 12:02:18 +08:00 3933 次点击
    这是一个创建于 1627 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是当 pod 第一次调度到一个节点后,就不再变动了,哪怕发生故障 down 机都不会变. 除了用 nodeselector 绑定之外还有别的办法吗?因为用 nodeselector 就成纯手动调度了,我还是希望按照我上面说的逻辑自动调度,有可能吗?

    22 条回复    2021-09-30 15:03:36 +08:00
    thet
        1
    thet  
       2021-04-28 12:07:08 +08:00 via iPhone
    把手动 nodeselector 弄成程序设置,就成自动的了
    wandehul
        2
    wandehul  
       2021-04-28 12:10:07 +08:00
    可以 label
    lsnl8480
        3
    lsnl8480  
       2021-04-28 12:58:27 +08:00   1
    搜索一下 k8s 污点 容忍
    pod 容忍 node not ready 污点就可以了
    baby6dog
        4
    baby6dog  
       2021-04-28 15:33:36 +08:00
    既然是调度到 node 后就不再变动 为何不开始就指定 node 或者你自己写 crd
    KaynW
        5
    KaynW  
       2021-04-28 15:57:36 +08:00
    @lsnl8480 这样资源不够还是有可能被驱逐的吧
    THESDZ
        6
    THESDZ  
       2021-04-28 16:31:51 +08:00
    我的理解是,你所提出来的问题并非你真正的需求,你提出的问题只是你的实现手段的可行性,建议提出原始的需求
    ptrees
        7
    ptrees  
    OP
       2021-04-28 17:19:33 +08:00
    @HESDZ 是这样的,我们公司有几十套差不多的系统分别做个性化开发,一套系统需要一台虚拟机,这样资源开销太大,而且不方便回收迁移.所以我想用 k8s 来管理,方便启停.考虑到读写性能问题我不想用 nfs,所以想把 pod 绑定在 node 上直接用 hostpath,然后就问出了这个问题.如果有更好的解决方案还请不吝赐教.
    defunct9
        8
    defunct9  
       2021-04-28 17:29:38 +08:00
    不建议这么搞,这么搞违背了无状态 pod 的要求。可以 nfs,oss 挂,iscsi,GlusterFS,hostpath 不是好选择
    THESDZ
        9
    THESDZ  
       2021-04-28 17:31:29 +08:00
    @ptrees #7 按照你目前的需求,本人建议是给指定的节点上增加 label,然后通过 selector 配置 label,将 pod 固定在指定节点上

    下面是我搜索到的相关文章

    https://www.cnblogs.com/peng-zone/p/11739433.html
    THESDZ
        10
    THESDZ  
       2021-04-28 17:33:43 +08:00
    @THESDZ #9 另外假设你考虑配置比较繁琐,而你的多个应用实际上可以根据 namespace 区分的话,可以考虑使用 namespace 绑定节点

    以下是我找到的相关文章

    https://blog.csdn.net/weixin_43842833/article/details/108599857
    STRRL
        11
    STRRL  
       2021-04-28 17:42:48 +08:00
    唉 听上去又是要做这种“原地”的需求, 这种事情最好不做, 做了以后运维仍然要承担很大的风险.

    可以搜一下美团的博客,然后了解一下 openkruise.
    we8105
        12
    we8105  
       2021-04-28 18:15:52 +08:00
    哈哈 这个问题是老问题了 遇到过多次 基本上问就是 openkruise 然后原地升级

    但是要引入第三方模块 不一定适用所有环境 有的就不喜欢用 你能怎么办

    要不自己写一个调度器 我当时就想写来着 奈何 go 没学精通 最后没成
    kennylam777
        13
    kennylam777  
       2021-04-28 18:40:25 +08:00   1
    甚有人提 PersistentVolume 配 local volume?

    配置在 kubernetes.io 官上就有提, 通 PVC 定制 Pod 配指定的 node, 就做到主的要求, 不必去搞第三方的吧。

    不同於 pod.spec.nodeName 的是, 你要用 pv.spec.nodeAffinity 指定 node, 都在 PV 上指定 local path 了就行吧, 不必 pod.spec

    如果只是了一 local volume, 能少到 node labels 就好
    kennylam777
        14
    kennylam777  
       2021-04-28 18:54:43 +08:00
    清楚一, 就是 PV 不要用 hostPath 要用 local, 者是不同的
    andyangyu
        15
    andyangyu  
       2021-04-28 18:59:33 +08:00   1
    楼上说的对, 直接使用 local-volume-provisioner 就可以, pv 在节点事先生成, pvc 消费了 pv 以后, pod 就相当于和 node 绑定了, 除非删 pvc, 不然永远不会调度到其他机器上.
    ptrees
        16
    ptrees  
    OP
       2021-04-28 19:41:54 +08:00
    嗯,感谢大家的建议,我再考虑考虑
    hellorisk
        17
    hellorisk  
       2021-04-28 20:11:28 +08:00
    可以试试阿里云那边开源的 Openkruise 中的 cloneset
    kaneg
        18
    kaneg  
       2021-04-29 00:11:20 +08:00
    PV 中的 local volume 就是为你这种需求量身定做的。
    xuanbg
        19
    xuanbg  
       2021-04-29 05:10:01 +08:00
    容器名字加上固定的标签就行了吧?譬如有个 A 版本和 B 版本,你要开发 A 版本就把 A-xxx 容器都开起来,B-xxx 容器都停掉。这个也不需要 k8s,装个 prtainer 就解决了。
    kennylam777
        20
    kennylam777  
       2021-04-29 10:29:49 +08:00
    @xuanbg
    1. 是 k8s 板
    2. Portainer 不就是一漂亮又化了的 WebUI?! 不上 k8s 度用 Swarm?在有人有用 Swarm 上生境?
    3. 你的方案就是主不想要的手度方案
    xuanbg
        21
    xuanbg  
       2021-04-29 10:43:41 +08:00
    @kennylam777 一个开发环境,手动调度更灵活更简单,有什么不好的呢?又不是生产环境。话说就是测试环境我都不建议手动调度。。。
    ptrees
        22
    ptrees  
    OP
       2021-09-30 15:03:36 +08:00
    顺便一提最后还是用手动调度了
    不过还是区分了一下,读写比较频繁的使用手动调度+hostpath,其他的自动+nfs,还可以
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5467 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:36 PVG 16:36 LAX 01:36 JFK 04:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86