V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
joesonw
V2EX  ›  Go 编程语言

给家庭 k8s 集群用的 External Load Balancer

  •  1
     
  •   joesonw · 2019-03-10 13:27:24 +08:00 · 3210 次点击
    这是一个创建于 2085 天前的主题,其中的信息可能已经有所发展或是发生改变。

    github: https://github.com/joesonw/homemade-external-load-balancer

    一个动态 dns 解析 + 更新反向代理(traefik, etc) 配置的 controller.

    使用起来就和在云上的 ELB, SLB 之类一样

    欢迎 issue 和 PR

    大家有什么其他的使用场景也可以提一提. 例如 nginx 之类

    11 条回复    2019-03-11 13:05:42 +08:00
    mritd
        1
    mritd  
       2019-03-10 14:37:02 +08:00
    我的理解是 HELB 充当一个中间者角色:

    1、watch apiserver,实时将集群内部 svc 域名推送到 dnspod(设置 CNAME)
    2、接收来自公网的 CNAME 并将其负载到 traefik
    3、traefik 通过 hostname 做七层负载并最终分发到 pod 内(此时 traefik 应当是集群 ingress controller)

    布吉岛我理解的对不对,但是我感觉还是公司 VPN 更方便一些
    joesonw
        2
    joesonw  
    OP
       2019-03-10 15:13:09 +08:00
    @mritd

    1. 更新的是二级域名的 NS 解析
    2. 解析来自公网 /内网的三级域名的 A 请求 到 traefik (watch apiserver)
    3. 更新 traefik 配置 (watch apiserver)

    这个是自己玩的时候方便. 现在自己公司里用的是阿里云的 k8s 集群+slb. baremetal 没有这样的待遇.
    scofieldpeng
        3
    scofieldpeng  
       2019-03-10 15:17:57 +08:00
    这个不错,下周末试试,正好家里的 k8s 准备迁移
    mritd
        4
    mritd  
       2019-03-10 16:20:12 +08:00 via iPhone
    @scofieldpeng #3 我去,你们都在家里玩 k8s 么... 我顶多弄几个虚拟机测试
    joesonw
        5
    joesonw  
    OP
       2019-03-10 16:25:22 +08:00 via iPhone
    @mritd 单机也可以啊,方便规模化的时候上云,无缝。
    timothyye
        6
    timothyye  
       2019-03-10 19:19:56 +08:00 via Android
    最近有个 k3s,感觉更适合家里玩
    @joesonw
    @scofieldpeng
    @mritd
    scofieldpeng
        7
    scofieldpeng  
       2019-03-11 09:40:51 +08:00
    @timothyye #6 哥,你微信多少,我微信被 block 了,我重新加一下==
    scofieldpeng
        8
    scofieldpeng  
       2019-03-11 09:41:38 +08:00
    @timothyye #6 那个一出来我就看了,ha 方案官方还没出来,而且看了下吧 storage plugin 精简了好多,最近在折腾 diy 键盘还没时间鼓捣这个,等鼓捣完了再鼓捣这个,2333
    abmin521
        9
    abmin521  
       2019-03-11 12:54:33 +08:00
    算是 DDNS+ingress 不能称为 Load Balancer 吧(杠一下
    joesonw
        10
    joesonw  
    OP
       2019-03-11 13:04:08 +08:00
    @abmin521 为了取得和在云上 External Load Balancer 一样的功效嘛.
    joesonw
        11
    joesonw  
    OP
       2019-03-11 13:05:42 +08:00
    @abmin521 当然 load balance, ssl/tls 这些慢慢加进来, 先放上来是看有没有需要这些功能, 看下大家的需求. 二一个, 如果有跟我一样, 想要云上 ELB 那种效果, MetalLB 又太麻烦的, 可以先用一用.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2852 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:20 · PVG 17:20 · LAX 01:20 · JFK 04:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.