MrE*_*MrE 5 kubernetes google-kubernetes-engine
有没有办法从外部以安全的方式访问集群的“内部”服务(那些未暴露在外部的服务)。
目标很简单:我需要调试这些服务的客户端并需要访问它们,但不想将它们暴露在外面。
在普通的单个主机上,我通常会使用 SSH 隧道连接到主机并将端口映射到本地主机;我尝试使用 SSHD 容器,但这并没有让我走得很远:服务并不直接在该容器上,所以我不确定如何到达网络上的下一跳,因为这些服务正在动态管理 IP。
理想情况下,VPN 会方便得多,但 GKE 似乎不支持用于公路战士情况的 VPN。
这个用例有什么解决方案吗?
感谢您的输入。
编辑:
我在这里看到:https : //github.com/kubernetes/kubernetes/blob/master/docs/user-guide/accessing-the-cluster.md#ways-to-connect
目前支持的唯一连接方式是 HTTP/HTTPS,这意味着我可以代理 HTTP 调用,但不能代理任何端口
您可以通过在开发计算机上运行kubectl proxy并使用主服务器内置的代理功能(这是大量代理,但请耐心等待)来实现此目的。
第一次运行kubectl proxy。记下本地绑定的端口(默认情况下应为 8001)。这将导致 kubectl 创建一条通往主实例的隧道,您可以在本地访问该实例,而无需通过任何身份验证(从技术上讲,您可以通过直接访问主实例来执行以下所有步骤,而无需先执行此操作,但这对于调试来说更简单)。
接下来,将客户端(Web 浏览器、curl 等)指向http://localhost:8001/api/v1/proxy/namespaces/<ns>/services/<svc>/,替换<ns>为配置服务的命名空间和<svc>服务名称。您还可以将特定的请求路径附加到 URL 的末尾,因此,如果服务后面的 pod 托管着一个名为 的文件,data.json您可以将其附加到请求路径的末尾。
这就是更新演示教程的工作原理,因此,如果您遇到困难,我建议您仔细阅读该示例并仔细查看javascript的作用(它并不太复杂)。
| 归档时间: |
|
| 查看次数: |
2647 次 |
| 最近记录: |