V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
salivawbc
V2EX  ›  云计算

k8s 中 service 能否通过配置使得,收到集群内某个 pod 发来的请求会优先重定向到这个 service 所关联的和请求发起 pod 同一个 node 下的 pod.

  •  
  •   salivawbc · 2019-06-28 11:34:34 +08:00 · 3474 次点击
    这是一个创建于 1959 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2019-06-28 18:49:12 +08:00
    leorealman
        1
    leorealman  
       2019-06-28 11:37:20 +08:00
    为什么会有很奇葩的需求?你的意思是说发起请求的 POD 和最终响应的 POD 最好是在同一台物理机上?有点像 CDN 就近访问的原则
    salivawbc
        2
    salivawbc  
    OP
       2019-06-28 11:49:40 +08:00
    @leorealman 恩是的,因为会有两个 service 请求比较频繁,想节约他们两者之间通讯的开支,不清楚 k8s 是不是支持这种策略,并且对于同这块网络会有优化,让请求的性能接近直接使用宿主机 lo
    wfhtqp
        3
    wfhtqp  
       2019-06-28 11:52:18 +08:00
    使用`selector`部署到一台`node`上?
    salivawbc
        4
    salivawbc  
    OP
       2019-06-28 11:58:41 +08:00
    @wfhtqp 一个是主要的 service 需要的资源比较多, 还有一个是 daemonSet 需要部署在每个宿主机,现在是使用 hostPort 暴露 daemonSet 的 port,然后请求的 pod 会被传入本机的 nodeIp 的环境变量,从而使得每个 pod 会访问同一个 Node 下的 daemonSet,但是会感觉有点丑,想着 k8s 是不是有更好的方案。
    monsterxx03
        5
    monsterxx03  
       2019-06-28 11:59:10 +08:00 via iPhone
    目前没直接办法,看能不能把他们放在一个 pod 里,通过 localhost 访问。有个 kep 是关于这个的 https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0033-service-topology.md
    chenk008
        6
    chenk008  
       2019-06-28 12:36:31 +08:00
    这个可以修改 kube-proxy 的 iptables 或者 ipvs 来实现
    vindurriel
        7
    vindurriel  
       2019-06-28 12:40:22 +08:00 via iPhone
    可以自己做 用 k8s api 找到同 node 的 pod 的 ip 优先访问 找不到或失败再调用 service
    julyclyde
        8
    julyclyde  
       2019-06-28 14:13:26 +08:00
    @wfhtqp selector 感觉是“必须”的意思。原 po 的需求其实是“优先”
    menyakun
        9
    menyakun  
       2019-06-28 18:49:12 +08:00
    用 ipvs 的 weighted round robin (也就是 serviceIP 到 podID 的映射)应该可以,不过这个 feature 要比较新的 k8s 才支持,如果生产环境没法升级版本的话就不能用了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5695 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:55 · PVG 10:55 · LAX 18:55 · JFK 21:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.