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 ...
随机推荐
- Please, commit your changes or stash them before you can merge
参照 : https://blog.csdn.net/iefreer/article/details/7679631 用git pull来更新代码的时候,遇到了下面的问题: error: Your l ...
- JS数组reduce()方法
1.语法 arr.reduce(callback,[initialValue]) reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上 ...
- thinkphp里模版文件js无法使用if condition的问题
/** * @example thinkphp里模版文件js无法使用if condition的问题 * @example 参考地址:https://segmentfault.co ...
- Enable ssh root login in Solaris
1. Change the file /etc/ssh/sshd_config with PermitRootLogin yes to replace PermitRootLogin no 2. re ...
- npm和gulp学习
npm的使用 node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一种JavaScript语言运行平台,和浏览器这个运行平台是同一个概念. npm np ...
- 举枪消灭"烂代码"的实战案例
前言 之前我写过一篇如何少写PHP "烂"代码 https://segmentfault.com/a/11...感觉很多新人对此不太理解.今天以打卡功能为例,去讲解其中的奥秘.那篇 ...
- 第二节:numpy之数组切片、数据类型转换、随机数组
- 《hello-world》第八次团队作业:Alpha冲刺-Scrum Meeting 4
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...
- BZOJ 2754 [SCOI2012]喵星球上的点名 (AC自动机、树状数组)
吐槽: 为啥很多人用AC自动机暴力跳都过了?复杂度真的对么? 做法一: AC自动机+树状数组 姓名的问题,中间加个特殊字符连起来即可. 肯定是对点名串建AC自动机(map存儿子),然后第一问就相当于问 ...
- 【codeforces 510D】Fox And Jumping
[题目链接]:http://codeforces.com/contest/510/problem/D [题意] 你可以买n种卡片; 每种卡片的花费对应c[i]; 当你拥有了第i种卡片之后; 你可以在任 ...