从外部 ssh 到 k8s 的 pod 里面

346 天前
 HugeNature

求教大佬,从外部 ssh 到 k8s 的 pod 里面,有什么方案么?

6899 次点击
所在节点    Kubernetes
64 条回复
SoulSleep
346 天前
首先默认的网络方案是不支持的...我们有用大二层网络架构的 k8s 可以,pod 就像一个 vm 一样....

要不你开个 node port 把 ssh 给映射出去(不安全

很多平台支持 webshell...
julyclyde
346 天前
首先容器里就别运行完整的操作系统
它也不拥有固定的 IP 地址

ssh 进去这个,一定是你的需求有问题
hicdn
346 天前
pod 里跑个 ttyd ,可以开认证选项,把端口映射出来,就可以在浏览器里执行命令了
kenvix
346 天前
@julyclyde 这种需求是存在的,我们这里有一种人工智能平台就在 k8s 阵列上运行 sshd 然后用户 vscode sshd 进去写代码跑模型训练
julyclyde
346 天前
@kenvix 设计错误
HugeNature
346 天前
@julyclyde 我们的需求类似 kenvix ,用户需要进去 pod 做一些修改能快速地做一些验证。
buffzty
346 天前
1. 加个 wireguard 直通集群
2. k8s port-forward
临时建议第二种 长期建议第一种 第一种只能给后端负责人
julyclyde
346 天前
@HugeNature 你这种情况不应该用 k8s 而应该是一个长生命周期的服务器
HugeNature
346 天前
@hicdn 这个方案的确是一个可选项,但是 web terminal 体验不是很好,不能做太重的事情。
HugeNature
346 天前
@buffzty 1. 加个 wireguard 直通集群 这个方案可以详细解释下么?是将 wg 安装在 pod 里还是 host 上?
defunct9
346 天前
kubectl exec -it pod -- /bin/bash
HugeNature
346 天前
@defunct9 这个不是 ssh 哈。
happyxhw101
346 天前
@HugeNature 可以看看 k8s dashboard 里面是怎么实现的,应该是在前端实现了 kubectl exec -it xxxx -- sh
HugeNature
346 天前
@julyclyde 现状就是已经用了 k8s 了,没办法推倒,只能想办法解决 ssh 的问题
66z
346 天前
好像 kubeflow 的方案是 jupter
qilme
346 天前
平添麻烦,参考一下 okteto 的实现是每个容器加一个 ssh 服务器进去,然后做端口转发
https://www.okteto.com/docs/reference/ssh-server/
killva4624
346 天前
kubectl exec -it pod bash

把这层封装到前端做一个 Terminal
buffzty
346 天前
@HugeNature wireguard 安在 node 上 你客户端也要安装一个 可以自己设置代理仅集群内流量 集群 dns 也可以用 本地跟集群全互通
defunct9
346 天前
容器里本来就没有 ssh ,非要跑一个干嘛,你的目的就是远程调试,那么启个 bash 接进来就是正解。你可以在你发起 ssh 的机器上配好 kubectl 不就行了。
ppto
346 天前
sidecar 感觉可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/998329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX