kubernetes - 使用 Bastion 通过 SSH 连接到 Kubernetes Pod

标签 kubernetes kubectl google-kubernetes-engine

我已经部署了Google云Kubernetes集群。集群只有内部 IP。

为了访问它,我创建了一个具有外部 IP 的虚拟机 bastion-1

结构:

My Machine -> bastion-1 -> Kubernetes cluster

与代理站的连接:

$ ssh bastion -D 1080

现在使用 kubectl 使用代理:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl get pods
No resources found.

Kubernetes 主服务器正在响应,这是一个好兆头。

现在,尝试通过 ssh 连接 pod:

$ HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl exec -it "my-pod" -- /bin/bash
error: error sending request: Post https://xxx.xxx.xxx.xxx/api/v1/namespaces/xxx/pods/pod-xxx/exec?command=%2Fbin%2Fbash&container=xxx&container=xxx&stdin=true&stdout=true&tty=true: EOF

问题: 如何允许通过 bastion ssh 连接到 pod?我做错了什么?

最佳答案

您现在不能执行此操作。

原因是因为 exec 和 proxy 等命令使用的连接使用 SPDY2。

有一个错误报告 here有更多信息。

您必须切换到使用 HTTP 代理

关于kubernetes - 使用 Bastion 通过 SSH 连接到 Kubernetes Pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54548736/

相关文章:

linux - 如何使用Kubernetes管理Linux用户?

kubernetes - Kubernetes-在CentOS7中实现Kubernetes Master HA解决方案

nginx - 从 Google Container Engine 转发 HTTPS 客户端 IP

kubernetes - 来自节点而不是 LB 服务的 GKE 集群导出流量

pyspark - GCP - GKE 与 Dataproc 的 Spark

bash - 如何使用CTRL + C退出并杀死正在运行的Docker容器?

docker - Minikube启动命令给出了模板解析错误

kubernetes - 通过入口服务将来自 kubernetes pod 的 http 请求发送到 Minikube 中的另一个 pod

kubernetes - 如何将生成的 kube 配置保存到 .kube/config