我有一个库伯奈特星系团。
我可以轻松地连接到远程容器,并运行一个shell节点连接到实时生产erlang节点:
$ kubectl exec myapp-2431125679-cwqvt -i -t -- iex --name debugging@127.0.0.1 --remsh myliveapp@127.0.0.1 --cookie my_secret_cookie
Erlang/OTP 18 [erts-7.3.1] [source] [64-bit] [smp:2:2] [async-threads:10] [kernel-poll:false]
Interactive Elixir (1.3.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(myliveapp@127.0.0.1)1>不过,我需要的是能够在远程实时生产的erlang节点上运行。
我也能做到:
epmd进程:
killall epmdepmd,这是我的远程容器的情况。:observer的顶部菜单中选择我感兴趣的应用程序。我的问题是:
最终,我是否可以将这个过程变成一个一行程序,或者将它转换成一个shell脚本?
现在,杀死epmd看上去真的-真的很脏,我很想能特别避免这种情况。
发布于 2020-08-21 14:44:30
是的,您可以将其转换为shell脚本。我确实为这个用例创建了一个shell脚本,但我正在使用SSH。我的方法和你的一样,我也必须在当地杀死epmd。但我能把它包装成bash脚本。你可以在这里抓住它:observe/
该脚本还自动发现远程波束端口。所以你最后只有一句话:
remote_observe -c <cookie> <server-address>
我没有方便的Kubernetes部署,但它可能很容易移植到调用kubectl port-forward <server-address> <port>,而不是当前的ssh转发。
https://stackoverflow.com/questions/41998083
复制相似问题