
k8s 中,一个 Pod 里面有 A,B 两个容器,假设 容器 B 里面有一个 dump 命令,现在向在容器 A 中使用这个 dump 命令,可以做到吗
1 dayeye2006199 2022-11-08 23:37:01 +08:00 via Android 把 B 做成 RPC 或者 Web 服务,然后让 a 去调用。 |
2 zoeeer 2022-11-09 00:09:37 +08:00 如果是编译好的可执行文件,可以用 ldd `which dump` 查看依赖库,把可执行文件和所有依赖库都拷贝到对应位置 |
3 cabbage 2022-11-09 00:14:51 +08:00 如果单纯就一个程序的话,pvc 打包出来挂载共享好了 |
4 lhx2008 2022-11-09 00:25:56 +08:00 via Android 可以通过 emptydir 共享 socket 文件 |
5 tuutoo 2022-11-09 03:44:04 +08:00 via Android |
6 shakaraka PRO 典型的 RPC 需求 |
7 kennylam777 2022-11-09 04:35:51 +08:00 EmtpyDir 分享 socket +1 一 Pod 可以 share processes namespace 。 |
8 eudore 2022-11-09 08:37:38 +08:00 1 、要是一个静态二进制 |
9 eudore 2022-11-09 08:39:19 +08:00 然后两个容器挂载同一个 hostpath ,打通存储启动时将二进制进去,修改 env PATH 就有命令。 如果不是静态二进制,尽量系统环境一样依赖一样,可以使用动态链接二进制。 |
10 hualuogeng 2022-11-09 08:48:58 +08:00 @kennylam777 shared processes namespace 最简单 |
11 EchoUtopia 2022-11-09 11:39:23 +08:00 最简单的方法是容器 a 加上 dump 命令 |
12 r4aAi04Uk2gYWU89 2022-11-09 13:59:05 +08:00 |
13 godfunc OP @kennylam777 看了官方的示例,没太懂,如果我想在 shell 里面调用 nginx command 应该如何操作啊 |
14 kennylam777 2022-11-09 23:35:01 +08:00 @godfunc nginx command 那是 signal to PID 了,shared processes namespace 就是了用而生,Pod A 先把 nginx 的 PID 到 emtpyDir ,pod B 取 PID 然後用 kill signal nginx |
15 Davic1 2022-11-10 10:11:40 +08:00 是不是可以通过 ssh 直接在 B 上执行 dump 命令? |