kubectl proxy和kubectl port-forwarding外观相似,有时混乱给我,我想了解一下他们的区别和自己的使用情况。
Von*_*onC 12
如“如何kubectl port-forward运作? ”中所述
kubectl port-forward将与本地端口的连接转发到 pod 上的端口。相比
kubectl proxy,kubectl port-forward更通用,因为它可以转发 TCP 流量,而kubectl proxy只能转发 HTTP 流量。
例如,请参阅Alex Barashkov 的“ Kubernetes 端口转发前所未有的简单” :
端口转发主要用于访问内部集群资源和调试。
它是如何工作的?
一般来说,使用端口转发,您可以在您的“本地主机”上获取集群中启动的任何服务。
例如,如果您在 6379 上的集群中安装了 Redis,请使用如下命令:Run Code Online (Sandbox Code Playgroud)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 的“安装和使用 Kubernetes 仪表板的分步指南”所示:
Run Code Online (Sandbox Code Playgroud)kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml使用 kubectl 访问仪表板
Run Code Online (Sandbox Code Playgroud)kubectl proxy它将在您的机器和 Kubernetes API 服务器之间代理服务器。
现在,要在浏览器中查看仪表板,请在主 VM 的浏览器中导航到以下地址:
Run Code Online (Sandbox Code Playgroud)http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
| 归档时间: |
|
| 查看次数: |
6278 次 |
| 最近记录: |