Kubernetes Port Forward 机制访问 pod
需求:研发需要调试部署的pod是否能正常提供访问,但又不对pod进行暴露到集群外。
实现:通过Kubernetes的Port Forward机制对本机端口映射到pod端口来实现
一、单集群配置
1、安装kubectl
官网下载页面:https://kubernetes.io/docs/tasks/tools/install-kubectl/
下载对应Kubernetes 相同版本的kubectl:
https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/windows/amd64/kubectl.exe
把下载的kubectl.exe文件存放在C:\k8s\bin目录下,并把该目录添加到PATH中(步骤略)
2、配置kubectl
1)需要获取配置文件:
a、一般部署的Kubernetes,会生成 $HOME/.kube/config,把该目录下的config文件,存放在Windows本地对应家目录C:\Users\admin\.kube下
b、如果rancher部署的,可在集群首页查看配置文件,复制下来也存放在账号的家目录
2)然后cmd中查看集群
kubectl get node
说明配置kubectl成功。
3、设置转发端口
1)把本地3080端口转发到容器的80端口
kubectl port-forward my-nginx-6d7ddd766f-4fxxc 3080:80
Forwarding from 127.0.0.1:3080 -> 80
Forwarding from [::1]:3080 -> 80
输出如上,说明转发成功。如果是部署在其他namespace上,需要用 -n 指定namespace。该窗口不能关闭。
2)本地浏览器访问
127.0.0.1:3080
二、多集群配置
如果是多个集群(测试、正式、CI/CD等环境),有两种方式进行配置。
1、指定kubeconfig文件
将多个集群的 config 文件都存放在 .kube 文件夹中,命令指定文件绝对路径。
kubectl --kubeconfig="C:\Users\admin\.kube\dev-config" get pod --all-namespaces
2、指定 context
把所有的集群文件合并为一个文件config。
apiVersion: v1
kind: Config
clusters:
- name: "production"
cluster:
server: "https://rancher.wmq.com/k8s/clusters/c-xaw"
- name: "develop"
cluster:
server: "https://rancher.wmq.com/k8s/clusters/c-xaq" users:
- name: "u-42lyr7ytst"
user:
token: "kubeconfig-u-42lyr7ytst.c-x497w:756z5v8s84cch4444kx33333395zg4klxwtaaabqrg"
- name: "u-42lyr7ytst_dev"
user:
token: "kubeconfig-u-42lyr7ytst.c-xg99q:6sm7hhdlfx44449c4rs3333333333g3vzcjdjcaaazzq" contexts:
- name: "prod"
context:
user: "u-42lyr7ytst"
cluster: "production"
- name: "dev"
context:
user: "u-42lyr7ytst_dev"
cluster: "develop" current-context: "dev"
执行下面命令即可
kubectl --context dev get pod --all-namespaces
三、gui软件
如果觉得上面步骤很麻烦,这里推荐一个开源的gui软件:Kube Forwarder;支持多集群,只需要简单的导入各个集群的 kubeconfig 文件即可,很方便使用。
如下图:
Kubernetes Port Forward 机制访问 pod的更多相关文章
- kubernetes如何访问pod服务
一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...
- kubernetes应用的各种访问方式
1. 通过 Pod 的 IP 地址访问应用 1.1 Pod 的IP地址 每个Pod 都会被分配一个IP地址,比如下面这儿pod的IP地址是 10.1.79.11. root@kub-node-0:/h ...
- 第六章 通过Service访问Pod(上)
不应该直接使用Pod的ID地址作为对外提供服务的接口,应为一旦Pod重启,IP地址就变化了,解决方案是使用Service. 6.1 创建Service K8s service从逻辑上代表了一组Pod, ...
- 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer
Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ...
- k8s如何访问pod
1. 通过 Service 访问 Pod 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...
- 如何访问Pod
本章看点: 理清Deployment,ReplicaSet和Pod的关系,以及三者之间的网络关系,ip地址和端口号 通过Pod进入docker容器修改里面的内容 外部网络访问Pod里面的应用 一.通过 ...
- 如何访问pod(6)
一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...
- linux运维、架构之路-K8s通过Service访问Pod
一.通过Service访问Pod 每个Pod都有自己的IP地址,当Controller用新的Pod替换发生故障的Pod时,新Pod会分配到新的IP地址,例如:有一组Pod对外提供HTTP服务,它们的I ...
- 第6篇如何访问pod
一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 con ...
随机推荐
- (转)Arcgis for javascript实现百度地图ABCD marker的效果
概述: 在我的博客中,有一篇相关的文章,这段时间,有很多人问我求源码,只是时间过去已长,源代码已找不到,乘着这个9.3放假,又重新实现了下,并相关代码做了优化,在此贴出来,方便大家使用. 相关文章地址 ...
- makefile 与 make
所要完成的Makefile 文件描述了整个工程的编译.连接等规则.其中包括:工程中的哪些源文件需要编译以及如何编译.需要创建那些库文件以及如何创建这些库文件.如何最后产生我们想要的可执行文件.尽管看起 ...
- day07-列表类型/元组类型/字典类型/集合类型内置方法
目录 列表类型内置方法 元组类型内置方法 字典类型内置方法 集合类型内置方法 列表类型内置方法 用来存多个元素,[]内用逗号隔开任意数据类型的元素 1. list()强制类型转换 print(list ...
- Cesium学习笔记(五):3D 模型 (http://blog.csdn.net/umgsoil/article/details/74572877)
Cesium支持3D模型,包括关键帧动画,皮肤的改变还有单个节点的选择等,Cesium还提供了了一个基于网络的工具,将COLLADA模型转换为glTF,方便和优化模型添加 还记得我们在实体添加的时候添 ...
- CAD把一个命令当着一个函数调用,不执行(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::Mx_SendStringToExecuteFun 把一个命令当着一个函数调用,不执行,详细说明如下: 参数 说明 CString s ...
- Python 内置函数 day4
import random s = 'abczfg' st= {3,4,9,1,8} print(dir(random))#打印模块内的方法,输出模块/变量可以调用的方法 print(dir(s))# ...
- ie 浏览器下ajax请求来自缓存的解决方法
如上图所示,在ie浏览器下发出的请求,如何缓存中已经出现过这条请求记录,则不会请求服务端数据,解决方法是在请求后增加一个随机数,使每次请求都不同*可以添加当前时间戳 url+'?t='+Date.no ...
- 微信公众号:1-IDHTTP控件:GET/POST 请求获取access_token
(图来源于方蓓?) 首先要理解公众号的流程.通过图知道,我们要:1.你要有个web服务器,用于和微信服务器通讯.你的web服务器必须让微信服务器能找到.2.通信要求按照微信公众号开发要求的格式提供相关 ...
- PHP中echo和print的区别
这篇文章主要介绍了PHP中echo和print的区别,针对二者使用中常见的用法区别进行了较为深入的总结与分析,需要的朋友可以参考下 一般来说,PHP中动态输出HTML内容,是通过print 和 ech ...
- HDU 5393
[background] 保研的事终于告一段落了,之后去北京折腾了一段时间,本以为会在那里实习一个月,谁知道刚去ICT,心中就各种反感,可能是因为LP的态度吧,否则我可能会留在那里读研也说不定.花了两 ...