首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行远程erlang节点的观察者:使其更简单

运行远程erlang节点的观察者:使其更简单
EN

Stack Overflow用户
提问于 2017-02-02 09:06:57
回答 1查看 1.7K关注 0票数 13

我有一个库伯奈特星系团。

我可以轻松地连接到远程容器,并运行一个shell节点连接到实时生产erlang节点:

代码语言:javascript
复制
$ 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节点上运行

我也能做到:

  1. 杀死本地epmd进程: killall epmd
  2. 将选定的远程端口转发到本地计算机: kubectl端口-转发myapp-2431125679-cwqvt 35609 4369 我知道我的应用程序运行在远程容器的端口35609上,4369是默认运行的端口epmd,这是我的远程容器的情况。
  3. 跑: 名称调试@127.0.0.1-cookie市场-e ':observer.start()‘
  4. :observer的顶部菜单中选择我感兴趣的应用程序。

我的问题是:

  1. 可以做更简单的吗?
  2. 是否有任何关于kubernetes的知识,可以编写一个连接到远程节点并做我想做的事情的一行呢?

最终,我是否可以将这个过程变成一个一行程序,或者将它转换成一个shell脚本?

现在,杀死epmd看上去真的-真的很脏,我很想能特别避免这种情况。

EN

回答 1

Stack Overflow用户

发布于 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转发。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41998083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档