【发布时间】:2019-10-13 03:20:28
【问题描述】:
kubectl proxy 和 kubectl port-forwarding 看起来很相似,有时让我感到困惑,我想知道它们的区别和它们自己的用例。
【问题讨论】:
标签: kubernetes
kubectl proxy 和 kubectl port-forwarding 看起来很相似,有时让我感到困惑,我想知道它们的区别和它们自己的用例。
【问题讨论】:
标签: kubernetes
如“How kubectl port-forward works?”中所述
kubectl port-forward将本地端口的连接转发到 pod 上的端口。相比
kubectl proxy,kubectl port-forward更通用,因为它可以转发 TCP 流量,而kubectl proxy只能转发 HTTP 流量。
例如,参见Alex Barashkov中的“Kubernetes port forwarding simple like never before”:
端口转发主要用于访问内部集群资源和调试。
它是如何工作的?
一般来说,使用端口转发,您可以在“本地主机”上获取集群中启动的任何服务。
例如,如果您在 6379 上的集群中安装了 Redis,则使用如下命令:kubectl port-forward redis-master-765d459796-258hz 7000:6379您可以将 Redis 从集群转发到 localhost:7000,在本地访问它并使用它做任何您想做的事情。
对于有限的 HTTP 访问,请参阅 kubectl 代理,例如,来自 Joe Beda 的“On Securing the Kubernetes Dashboard”:
访问集群最简单、最常用的方法是通过 kubectl 代理。这将创建一个本地 Web 服务器,通过 Kubernetes API 服务器将数据安全地代理到仪表板。
如Awanish中的“A Step-By-Step Guide To Install & Use Kubernetes Dashboard”所示:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml使用 kubectl 访问 Dashboard
kubectl proxy它将在您的机器和 Kubernetes API 服务器之间代理服务器。
现在,要在浏览器中查看仪表板,请在主 VM 的浏览器中导航到以下地址:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
【讨论】: