【问题标题】:Difference between kubectl port-forwarding and proxykubectl 端口转发和代理之间的区别
【发布时间】:2019-10-13 03:20:28
【问题描述】:

kubectl proxykubectl port-forwarding 看起来很相似,有时让我感到困惑,我想知道它们的区别和它们自己的用例。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    如“How kubectl port-forward works?”中所述

    kubectl port-forward 将本地端口的连接转发到 pod 上的端口。

    相比kubectl proxykubectl 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/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-01
      • 1970-01-01
      • 2021-05-02
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 2014-01-02
      相关资源
      最近更新 更多