Kubectl端口转发和代理之间的区别

时间:2019-10-13 03:20:28

标签: kubernetes

kubectl proxykubectl port-forwarding看起来很相似,有时让我感到困惑,我想知道它们之间的差异以及他们自己的用例。

1 个答案:

答案 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/