kubectl proxy
和kubectl port-forwarding
看起来很相似,有时让我感到困惑,我想知道它们之间的差异以及他们自己的用例。
答案 0 :(得分:3)
如“ How kubectl port-forward
works?”中所述
kubectl port-forward
将到本地端口的连接转发到Pod上的端口。与
kubectl proxy
相比,kubectl port-forward
更为通用,因为它可以转发TCP流量,而kubectl proxy
仅可以转发HTTP流量。
例如,请参见Kubernetes port forwarding simple like never before中的“ Alex Barashkov”:
端口转发主要用于访问内部集群资源和进行调试。
它如何工作?
通常来说,使用端口转发,您可以在集群中启动的所有服务都进入“本地主机”。
例如,如果您在6379的群集中安装了Redis,则可以使用以下命令:kubectl port-forward redis-master-765d459796-258hz 7000:6379
您可以将Redis从群集转发到localhost:7000,可以在本地访问它,并可以执行任何操作。
要获取有限的HTTP访问权限,请参阅kubectl代理,例如,请访问On Securing the Kubernetes Dashboard中的“ Joe Beda”:
访问集群的最简单,最常见的方法是通过kubectl代理。这将创建一个本地Web服务器,该服务器通过Kubernetes API服务器将数据安全地代理到仪表板。
如A Step-By-Step Guide To Install & Use Kubernetes Dashboard中的“ Awanish”所示:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
使用kubectl访问仪表板
kubectl proxy
它将在您的机器和Kubernetes API服务器之间代理服务器。
现在,要在浏览器中查看仪表板,请在主VM的浏览器中导航至以下地址:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/