kubectl 高级用法之 port-forward 和proxy

port-forward

我们经常会调试容器的里面服务,检测容器里面服务是否正常,譬如 curl 一下容器里面端口。但我们安装kubectl 机器通常并不能直接和容器互通,因为kubectl 只需要连接到apiserver即可。

kubectl 高级用法之 port-forward 和proxy

我们可以通过port-forward命令,将容器的端口映射成本地端口。如下:

kubectl port-forward mongo-75f59d57f4-4nd6q 28015:27017

上面的命令可以将mongo 容器里面的27017 端口映射到本地 28015 端口。不仅如此还可以将k8s 的service 映射到本地。如下:

kubectl port-forward service/mongo 28015:27017

这样我们就可以打开一个新的窗口,然后连接本地的28015端口,后台自动转发到容器里面的27017 端口。但目前port-forward 还只能支持TCP协议。关于port-forward 实现原理,后续专门写一篇文章介绍,这个也是一个高频面试题。

proxy

有时候我们需要调试apiserver接口,但又不想走认证流程,kubectl 还可以通过proxy 建立一个隧道,通过访问本地的8080 端口代理对apiserver 的请求,从而绕过认证过程。

kubectl proxy --port=8080

那么接下来便可以通过curl 直接获取pod 列表了

curl http://localhost:8080/api/v1/namespaces/default/pods

这里就可以轻松绕过了k8s 的认证过程,整个认证由 kubectl 通过kubeconfig 完成,只对外暴露了简单的访问入口。

展开阅读全文

页面更新:2024-05-12

标签:不仅如此   隧道   端口   容器   后台   入口   接口   命令   流程   原理   机器   窗口   成本   协议   过程   高级   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top