k8s网络服务

k8s 中向外界提供服务的几种方法port-forwardNodePort,以及 更加常用的提供服务的资源ingress。

1 kubectl port-forward service/redis 6379:6379 现在k8s中有一个pod运行在6379,本机访问映射到6379上,它可以针对部署,服务,pod类型,效果相同

启用后会占用当前终端的标准输出,可以在后面添加&来指定后台运行:

kubectl port-forward service/redis 6379:6379 &

如图在前台运行情况:它会监听虚拟机的127.0.0.1的6379端口转发到port中去从而能访问资源,但没有NodePoint使用的多

更改收听地址:

Kubectl 默认绑定127.0.0.1(IPv4) 和::1(IPv6) 地址上的本地端口。您可以通过在运行命令--address时提供标志来指定自己的 IP 集:port-forward2 NodePort 映射服务到节点端口。

kubectl port-forward deployment/mysql :3306 --address 127.0.0.1,192.168.0.1

该标志只接受 IP 地址和localhost关键字。后者被解释为包含127.0.0.1and ,当省略::1时匹配命令的默认值。--address、port-forward可以将 pod 临时映射出来,一般用于测试资源是否可用,在生产环境并不会大规模应用。

2 服务非代理模式NodePort

相对于上一种port-forward来说,这一种要正式的多,NodePort可以将其 转发到所有 k8s 节点的指定端口上 ,并且不会像port-forward一样在前台运行。

kubectl create deployment redis --image=redis 创建一个部署

kubectl expose deployment redis --type=NodePort --port=6379 暴露一个服务,并且它能实现负载均衡根据集群ip访问不同主机下的指定端口,可以查看服务详情minikube service 加服务名如

,其中url中的ip是pod所在的上层虚拟环境ip地址,虚拟机可以根据这个虚拟ip环境中的port进行资源访问,问题?现在虚拟机加pod所在的虚拟ip才能访问,现在我想虚拟机直接访问下层的虚拟ip的环境,这就用到上面的第一个,使用kubelctl将本地ip和pod资源直接绑定,假设虚拟机环境ip为192.168.56.2,kubectl在该环境下,连接的其他环境的pod,环境ip地址是192.168.67.2,现在使用nodepoint的映射单口加ip直接就能访问,要kubectl访问它所连接到的远程资源,就把它当成代理,监听本地请求然后转发响应,方式如上默认监听是127.0.01的地址如果ip想对外使用可以监听多个,如下:kubectl port-forward service/redis 6379:6379 --address 127.0.0.1,192.168.56.1

kubectl port-forward --address 0.0.0.0 service/redis 6379:6379 使更多虚拟机的ip地址,只要物理机对虚拟机ip能ping通就能访问到目标,前提是虚拟机的防火墙要关闭,本人之前就是没关闭物理机无法访问。systemctl status/stop firewalld 它是centos7以后的默认防火墙。

由于防火墙会被用来实现k8s的网络代理服务如kube-peoxy中就是以防火前模块实现所以这里关闭防火墙可以让物理机访问到虚拟机和minikube中的pod,当如果关闭防火墙就意味着minikube环境失去了对虚拟宿主机的依赖,就无法使用网络,更不可能拉取镜像。

这样你在虚拟机中就可以telnet +ip+端口 物理机也能访问该虚拟机

但是这里有个问题,假如我的 k8s 里运行了多个 web 应用服务器,我总不能让用户通过端口号http://domain:8081http://domain:8082来访问不同的 web 服务吧。能不能处理成http://domain/web1http://domain/web2 ...这种形式呢?当然可以,这个就是接下来要说的Ingress

4 使用ssh连接,密钥对或者使用密码连接,直接访问目标服务

ssh -f -N -L 35967:localhost:35967 vagrant@虚拟ip,输入密码会在前台阻塞运行,此时就能访问,它也不能能绕过防火墙,因为它需要kubectl在虚拟机暴露的端口,但可以直接连接minikube来绕过防火墙,直接物理机和目标连接者访问,不需要绕来绕去,转来转去。

3 通过 Ingress 暴露服务:nblogs.com/gaoyanbing/p/14031522✌

相关推荐
t5y223 小时前
【Linux】定时任务调度
linux·服务器
HY小海4 小时前
【Linux】进程概念
linux·运维·服务器
王八八。4 小时前
linux后台java、postSQL部署命令
java·linux·运维
瑞熙贝通实验室综合管理平台4 小时前
实验动物管理系统|以痛点为核心 构建动物房数字化管理新体系
linux
黄筱筱筱筱筱筱筱7 小时前
LINUX-防火墙
linux·服务器·网络
сокол7 小时前
【网安-Web渗透测试-靶场系列】AWD-Platform(ctf-hub)
linux·服务器·ubuntu·网络安全·docker
utf8mb4安全女神8 小时前
Linux系统服务相关命令【定时任务设置】【任务进程管理】【防火墙区域应用】
linux·运维·服务器
不吃土豆的马铃薯11 小时前
Spdlog 进阶:日志基本控制、日志格式控制、异步记录器
linux·服务器·开发语言·前端·c++
疯狂成瘾者11 小时前
常见的 Linux 版本
linux·运维·服务器
szxinmai主板定制专家11 小时前
基于ZYNQ MPSOC图像采集与压缩系统总体设计方案
linux·arm开发·人工智能·嵌入式硬件·fpga开发