提问者:小点点

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


kubectl代理kubectl端口转发在我看来相似且令人困惑,它们的主要区别和用例是什么?


共1个答案

匿名用户

如“kubectl port-转发如何工作?”中所述

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

与kubectl proxy相比,kubectl port-转发更通用,因为它可以转发TCP流量,而kubectl proxy只能转发HTTP流量。

例如,参见亚历克斯·巴拉什科夫的“库伯内特斯端口转发前所未有的简单”:

端口转发主要用于访问内部集群资源和调试。

它是如何工作的?

一般来说,使用端口转发,您可以在“localhost”上获取集群中启动的任何服务。
例如,如果您在6379上的集群中安装了Redis,则使用如下命令:

kubectl port-forward redis-master-765d459796-258hz 7000:6379

您可以将Redis从集群转发到localhost:7000,在本地访问它并对其执行任何操作。

有关有限的HTTP访问,请参阅kubectl代理,例如Joe Beda的“保护库伯内特斯仪表板”:

访问集群最简单和最常见的方法是通过kubectl代理。这将创建一个本地Web服务器,通过库伯内特斯API服务器安全地将数据代理到仪表板。

如“安装分步指南”所示

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

使用kubectl访问仪表板

kubectl proxy

它将代理服务器之间您的机器和库伯内特斯API服务器。

现在,要在浏览器中查看仪表板,请在主VM的浏览器中导航到以下地址:

http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/