gpt4 book ai didi

erlang - 为远程 erlang 节点运行观察者 : making it simpler

转载 作者:行者123 更新时间:2023-12-02 11:27:46 25 4
gpt4 key购买 nike

我有一个 kubernetes 集群。

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

$ 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>

我需要的是能够 运行 :observer针对远程实时生产 erlang 节点 .

我也可以这样做:
  • 杀死本地 epmd过程:
    killall epmd
  • 将选定的远程端口转发到我的本地机器:
    kubectl port-forward myapp-2431125679-cwqvt 35609 4369

    我知道我的应用程序在远程容器上的端口 35609 上运行,而 4369 是端口 epmd默认情况下运行,这是我的远程容器的情况。
  • 跑:
    iex --name debugging@127.0.0.1 --cookie marketplace -e ':observer.start()'
  • :observer 的顶部菜单中选择我感兴趣的应用程序.

  • 我的问题是:
  • 这可以做得更简单吗 ?
  • 关于 kubernetes,我应该了解什么 , 以便可以编写一个连接到远程节点的单行程序并执行我想要的操作?

  • 最终,我可以将此过程设为单行还是将其转换为 shell 脚本?

    眼下杀 epmd看起来真的很脏,我希望能够特别避免这种情况。

    最佳答案

    是的,您可以将其转换为 shell 脚本。我确实为这个用例创建了一个 shell 脚本,但我使用的是 SSH。我的方法看起来和你的一样,我也必须在本地杀死 epmd。但是我能够将它包装成一个 bash 脚本。你可以在这里获取它:https://github.com/dominicletz/remote_observe/
    该脚本还会自动发现远程波束端口。所以你最终得到一行:remote_observe -c <cookie> <server-address>我手头没有 Kubernetes 部署可以尝试,但它可能可以轻松移植到调用 kubectl port-forward <server-address> <port>而不是当前的 ssh 转发。

    关于erlang - 为远程 erlang 节点运行观察者 : making it simpler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998083/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com