kubernetes中两个Pod之间的SSH连接

时间:2018-03-20 04:46:50

标签: kubernetes

我想在kubernetes中的两个pod之间进行ssh。

谁能告诉我怎么做?

2 个答案:

答案 0 :(得分:1)

取代SSH(不推荐用于Docker容器,即使在Kubernetes环境中),请尝试kubernetes exec

kubectl exec -it  <container/pod> bash

这是直接访问:请参阅“Get a Shell to a Running Container”。

注意:kubectl cp可以帮助从/向容器复制。 (虽然有bug which might be fixed only in K8S 1.10

答案 1 :(得分:1)

过分简化答案,你不能。

也就是说,在“正常”的情况下......你的pod中的容器启动单个进程,即你的应用程序,无论是nodejs,php,java还是其他什么,所以他们的命名空间里面没有正在运行的SSH服务器。除非你通过ie明确地运行它。运行一个“胖”容器,启动一个监督程序进程(例如,通过使用像phusion/baseimage容器这样的容器),大多数容器世界被认为是反模式,或者通过在sidecar容器中运行ssh,这将允许您可以访问该ssh服务器(但它将具有自己的FS和可能的进程树,除非使用共享PID命名空间)。

正如另一个答案中所建议的那样,您可以使用serviceaccounts授予您调用kubernetes API的软件权限,从而使用诸如ie之类的东西。 kubectl exec。这是对你的正确呼唤......这取决于你最终想要实现的目标。