如何通过port-forward命令在本地访问 k8s 集群服务

这篇具有很好参考价值的文章主要介绍了如何通过port-forward命令在本地访问 k8s 集群服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享

概述

在我们访问k8s中的pod服务时,一般通过node port映射pod端口进行访问,还有一种是通过ingress或者istio通过域名方式来访问,虽然两种方式能满足我们需求,但是如果针对临时访问,配置起来还是有点复杂和耗时,那么我们就可以使用 kubectl port-forward来满足我们需求

port-forward 介绍

kubectl port-forward 是 Kubernetes 命令行工具 kubectl 提供的一个功能,用于在本地主机和 Kubernetes 集群中的 Pod 之间建立端口转发。

当你运行 kubectl port-forward 命令时,它会将本地主机上的一个端口与 Kubernetes 集群中的一个 Pod 的端口进行绑定。这样,在本地主机上监听的端口上收到的流量将被转发到 Pod 的端口上,反之亦然。

这个功能在开发和调试应用程序时非常有用。以下是一些 kubectl port-forward 的常见用途和好处:

  • 访问远程 Pod 的本地服务: 你可以将 Pod 的端口转发到本地主机,从而能够直接访问 Pod 上运行的服务。例如,你可以将一个运行在 Kubernetes 集群中的数据库 Pod 的端口转发到本地,以便在本地开发环境中连接和测试数据库。

  • 调试和日志记录: 通过将 Pod 的端口转发到本地,你可以使用本地工具来调试和监视在 Kubernetes 中运行的应用程序。你可以使用本地的调试器、日志记录工具或其他开发工具来检查应用程序的状态、调试问题或查看日志。

  • 绕过 Kubernetes 服务和负载均衡器: 有时候,你可能想直接访问运行在 Kubernetes 中的应用程序,而不经过 Kubernetes 的服务发现和负载均衡机制。通过将 Pod 的端口转发到本地,你可以绕过这些机制,直接连接到应用程序。

kubectl port-forward 命令的基本语法如下:

  kubectl port-forward <pod-name> [local-port:]pod-port [-n namespace]
  
  kubectl port-forward deployment/<deployment-name> [local-port:]pod-port [-n namespace]

基于以上介绍下面对port-forward命名进行一个简单验证

Kubectl 安装

  1. 下载
   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"

  1. 将 kubectl 置为可执行文件:
chmod +x ./kubectl
  1. 将可执行文件 kubectl 移动到系统可寻址路径 PATH 内的一个位置:
sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl

说明:

确保 /usr/local/bin 在你的 PATH 环境变量中。

  1. 测试一下,确保你安装的是最新的版本:
kubectl version --client

或者使用下面命令来查看版本的详细信息:

kubectl version --client --output=yaml
  1. 安装插件后,清理安装文件:
rm kubectl kubectl.sha256

配置kubectl

访问rancher控制台,下载kubeCofig文件

执行cd 到当前用户跟目录,创建.kube文件夹

cd & mkdir .kube & cd .kube

copy下载集群配置文件到.kube目录下,假设文件路径为:/Users/g2/Downloads/ ,文件名为:pdc-demo.yaml,那么命令如下

mv /Users/g2/Downloads/pdc-demo.yaml ./config

执行kubectl get pods 查看配置是否生效,返回如下信息即生效

端口转发配置验证

下面使用port-forward命令对集群中的elastic-job和eureka进行本地访问

elatic-job访问验证

如下图,假如要访问elatic-job

那么执行以下命令,这里的命令表示访问本地8080端口转发的pod上,pod的端口为80

kubectl port-forward elastic-job-86fc7b856-jxflx 8080:80

本地请求8080端口 地址,效果如下图

eureka访问验证

eureka的pod端口也为80映射到本地端口为8762

 kubectl port-forward eureka-5d4cf57b88-l8bgd  8762:80

可以看到访问成功文章来源地址https://www.toymoban.com/news/detail-760697.html

到了这里,关于如何通过port-forward命令在本地访问 k8s 集群服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过本地搭建wamp服务器并实现无公网IP远程访问

    软件技术的发展日新月异,各种能方便我们生活、工作和娱乐的新软件层出不穷,但也有一些经过时间和用户考验的老牌软件屹立不倒。就一我们熟悉的网站集成环境来说,全球就有很多种server软件。每个软件都有各自的特色(虽然同质化很严重),也拥有自己固定的适用群

    2024年02月12日
    浏览(37)
  • 如何通过快解析测试接口内外网?本地内网ip让外网访问连接

    接口调试测试是网络技术员经常工作内容之一。如在公司内部api项目webserver测试,在公司内办公室个人电脑是正常用内网IP访问连接测试的,但在外网电脑需要远程测试时需要怎么测试呢?这里提供一种内网地址让外网访问的通用方法:快解析内网映射。 内网地址在外网访问

    2024年02月07日
    浏览(42)
  • 如何在Windows通过固定tcp公网地址ssh远程访问本地Kali Linux

    本文主要介绍如何在Kali系统编辑SSH配置文件并结合cpolar内网穿透软件,实现公网环境ssh远程连接本地kali系统。 默认新安装的kali系统会关闭ssh 连接服务,我们通过命令打开: 启动后我们查看ssh 状态,active 表示ssh 正常运行 通常ssh 是使用账号或者密码进行登录连接,所以还需要开

    2024年04月23日
    浏览(35)
  • Tomcat配置项目直接通过http://ip:port访问

    遇到一个需求:因为这个域名下只部署了这一个项目,用户想直接通过域名来访问这个项目而不是加一层项目地址。 修改war文件名 : 将你的war文件重命名为 ROOT.war 。部署到 Tomcat 的 webapps 目录即可。 如果已经存在ROOT文件夹,删除它,以便 Tomcat 自动加解压缩并部署 ROOT.wa

    2024年01月21日
    浏览(32)
  • 如何在树莓派上使用Nginx搭建本地站点并通过内网穿透实现远程访问

    安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Nginx 的内存占用率非常低,可以在树莓派等资源受限的设备上运行。同时结合cpolar内网穿透工具即可实现无公网IP远程访问。 在树莓派安装

    2024年02月11日
    浏览(34)
  • 如何通过内网穿透实现任意浏览器远程访问Linux本地zabbix web管理界面

    Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域网访问,对于远程访问

    2024年02月02日
    浏览(33)
  • 如何通过内网穿透工具实现任意浏览器远程访问Linux本地zabbix web管理界面

    Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域网访问,对于远程访问

    2024年02月05日
    浏览(32)
  • SpringBoot服务启动了,但通过http://ip:port/不能访问 (windows、linux)

    无法启动首先确认一下对应的端口有没有开放。正常服务器上需要开启防火墙的情况下,需要通过开放对应端口来实现项目访问。 systemctl status firewalld   #查询防火墙状态 firewall-cmd --query-port=1986/tcp  #查询某端口的TCP协议是否开放 防火墙处于Active状态即表示防火墙是开启

    2024年02月16日
    浏览(24)
  • 如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器?

    这篇博文分享如何使用 scp 和 expect 命令写一个脚本来自动填充密码并实现自动登录并上传文件到服务器。 假设目标服务器: 192.168.159.175 远程文件服务器登录账号假设是 root 远程文件服务器登录密码假设是 toor /Users/zhaoqingfeng/downloads/test/dist/ 是前端打包部署文件夹 将 /Users/

    2024年02月09日
    浏览(41)
  • 【工具】SSH端口转发管理器,专门管理SSH Port Forwarding

    转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 开源代码看这里: http://xfxuezhang.cn/index.php/archives/1151/         有时候需要用到ssh的端口转发功能。目前来说,要么是cmd里手敲指令,但每次敲也太麻烦了;或者打开termius、mobaxterm这种ssh软件,但对于只想使用端口转发的

    2024年02月07日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包