有大佬试过静态编译 keepalived 吗

2022-02-23 13:14:05 +08:00
 guanzhangzhang

较多的 os 上,完全内网,目前是 docker 起的,但是这样机器宕机启动的时候,keepalived 容器是在 docker daemon 后起来的,所以目前打算是静态编译 keepalived ,尝试了下都不行。 尝试的步骤见 issue https://github.com/acassen/keepalived/issues/2107

4290 次点击
所在节点    Linux
33 条回复
zhoudaiyu
2022-02-24 08:51:25 +08:00
@defunct9 还是开个 SSH 让我上去瞅瞅吧 🐶
defunct9
2022-02-24 08:52:22 +08:00
似乎 issue 解决了这个问题。但是能不能用就得你来测试并给出答案了。
defunct9
2022-02-24 08:53:20 +08:00
@zhoudaiyu 这个就不用我 ssh 了,因为提问的也是个运维高手。看 issue 就能看出来
zhoudaiyu
2022-02-24 08:54:26 +08:00
@defunct9 同行?你也是运维吗?
CnpPt
2022-02-24 08:55:14 +08:00
我之前编译了 keepalived 单二进制随处用这算是静态编译吗
defunct9
2022-02-24 08:59:16 +08:00
@zhoudaiyu 握手,都是运维
guanzhangzhang
2022-02-24 09:24:33 +08:00
@corvofeng 老哥你起好早刷论坛,不使用 CCFLAG 和 LDFALGS 那俩变量动态编译是能成功的(这样就是跟随官方的教程编译安装的)。issue 里的步骤我今天试下
guanzhangzhang
2022-02-24 09:25:54 +08:00
@CnpPt 可以 ldd `which keepalived`看下是不是显示 not a dynamic link 就可以看出来是不是静态编译,我们客户是不同的政企,也就是客户是完全内网也可能,包管理用不了,所以安装 keepalived 很难,从 docker 挪出来就要考虑静态编译了
Kinnice
2022-02-24 09:32:11 +08:00
@guanzhangzhang 如果静态编译如果实在不好解决的话,可以尝试把各个 os 的包以及可能用到的依赖下载下来,然后编写脚本判断安装 [keepalived.tar install.sh],这是能预期的解决方案。
corvofeng
2022-02-24 10:03:52 +08:00
@guanzhangzhang 实在编译麻烦可以把.so 文件一起打包拷贝过去, 加个 LD_PRELOAD 环境变量到对应的目录就可以, 需要静态编译的场景用 go 会好一点
guanzhangzhang
2022-02-24 11:37:40 +08:00
@corvofeng 我是在纯服务进程,然后利用 iptables +ipset+ keepalived 的 lvs 把 k8s 的 ipvs-svc https://zhangguanzhang.github.io/2021/09/28/ipvs-svc/ 扣下来上生产的,不是所有环境都需要 k8s ,go 的话可以从 kube-proxy 扣代码实现个,但是后续还要评估和增加成本
guanzhangzhang
2022-02-24 11:38:30 +08:00
@Kinnice 开发者已经更新 keepalived 的 configure 了,我试了下能静态编译了,下午我找个实体的 os 测下我用的配置功能能正常工作不
CnpPt
2022-02-24 14:56:22 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX