需求:研发需要调试部署的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的更多相关文章

  1. kubernetes如何访问pod服务

    一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...

  2. kubernetes应用的各种访问方式

    1. 通过 Pod 的 IP 地址访问应用 1.1 Pod 的IP地址 每个Pod 都会被分配一个IP地址,比如下面这儿pod的IP地址是 10.1.79.11. root@kub-node-0:/h ...

  3. 第六章 通过Service访问Pod(上)

    不应该直接使用Pod的ID地址作为对外提供服务的接口,应为一旦Pod重启,IP地址就变化了,解决方案是使用Service. 6.1 创建Service K8s service从逻辑上代表了一组Pod, ...

  4. 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer

    Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ...

  5. k8s如何访问pod

    1. 通过 Service 访问 Pod 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...

  6. 如何访问Pod

    本章看点: 理清Deployment,ReplicaSet和Pod的关系,以及三者之间的网络关系,ip地址和端口号 通过Pod进入docker容器修改里面的内容 外部网络访问Pod里面的应用 一.通过 ...

  7. 如何访问pod(6)

    一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 control ...

  8. linux运维、架构之路-K8s通过Service访问Pod

    一.通过Service访问Pod 每个Pod都有自己的IP地址,当Controller用新的Pod替换发生故障的Pod时,新Pod会分配到新的IP地址,例如:有一组Pod对外提供HTTP服务,它们的I ...

  9. 第6篇如何访问pod

        一.通过 Service 访问 Pod: 我们不应该期望 Kubernetes Pod 是健壮的,而是要假设 Pod 中的容器很可能因为各种原因发生故障而死掉.Deployment 等 con ...

随机推荐

  1. iOS 9 中可用的受信任根证书列表

    iOS 受信任证书存储区包含随 iOS 预安装的可信根证书.  https://support.apple.com/zh-cn/HT205205 关于信任和证书 iOS 9 受信任证书存储区包含三类证 ...

  2. PHP 之获取Windows下CPU、内存的使用率

    <?php /** * Created by PhpStorm. * User: 25754 * Date: 2019/5/4 * Time: 13:42 */ class SystemInfo ...

  3. cad二次开发中各种头的定义

    Database db=HostApplicationServices.WrokingDatabase; Editor ed=Autodesk.AutoCAD.ApplicationService.A ...

  4. vue学习笔记(六)— 关于Vuex可以这样简单理解

    关于Vuex可以这样简单理解 作者:狐狸家的鱼 本文链接:关于Vuex GitHub:sueRimn 概念理解 和大多数文章都一样,从概念解释到引出问题再举例解决问题. 官网中,Vuex是状态管理模式 ...

  5. 五、Scrapy中Item Pipeline的用法

    本文转载自以下链接: https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/item-pipeline.html https://doc.scra ...

  6. Linux系统学习之 一:新手必须掌握的Linux命令1

    2018-10-03 16:04:12 一.常用系统工作命令 1.wget 命令 作用:用于在终端中下载网络文件. 格式:wget [参数] 下载地址 参数及作用: -b : 后台下载模式 -d:显示 ...

  7. centos中安装jdk

    1.上传jdk安装文件到根目录 2.解压到相关目录 (1)创建相应目录mkdir -p /usr/local/java (2)解压 tar -zxvf jdk-7u80-linux-x64.tar.g ...

  8. Windows Server 2008安装教程

    系统简介 windows server 2008是迄今为止最灵活.最稳定的windows 操作系统.Windows server 2008 的安装过程是基于镜像文件的,主要版本:Windows Ser ...

  9. BUAA_OO_博客作业三

    1 JML语言总结 1.1 JML语言的理论基础 ​ JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.JML是一种行为接口规格语言(Behavi ...

  10. HTML5本地存储——Web SQL Database与indexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...