【发布时间】:2021-11-21 06:36:52
【问题描述】:
我们有两个 GKE 私有集群,只能通过 ssh 代理访问。
在本地环境中,这是这样工作的:
-
打开 ssh 连接,端口 8888 转发到堡垒主机
gcloud compute ssh dev-cluster-bastion --project client-dev --zone xxxx -- -L 8888:127.0.0.1:8888 -
在另一个会话中
HTTPS_PROXY=localhost:8888 kubectl get pods
这将返回正在运行的 pod 的列表。
当我们在 bitbucket 管道中执行此操作时,ssh 连接,但随后关闭,kubectl 调用失败。
来自 ssh 连接的消息是:
Pseudo-terminal will not be allocated because stdin is not a terminal
所以端口转发也关闭了。
将-fN添加到ssh启动没有帮助,端口转发不起作用。
gcloud compute ssh dev-cluster-bastion --project client-dev --zone xxxx -- -fN -L 8888:127.0.0.1:8888
ssh 然后告诉我client_loop: send disconnect: Connection reset by peer
任何想法如何在 bitbucket 管道中打开端口 8888 tcp 隧道,以便我们可以将 kubectl 命令发送到集群?
【问题讨论】:
标签: ssh google-kubernetes-engine bitbucket-pipelines ssh-tunnel