k8s将service的IP对应的不同端口分配到不同的pod上

在Kubernetes中,Service是一种抽象层,它将请求路由到一组Pod。当你需要将Service的不同端口映射到不同的Pod时,可以通过以下两种主要方式实现:

方法一:使用单个Service的多端口配置

如果不同的Pod提供不同的服务(如HTTP和HTTPS),但属于同一应用,可以在同一个Service中定义多个端口,每个端口映射到不同的Pod端口。

示例配置
apiVersion: v1
kind: Service
metadata:name: my-multi-port-service
spec:selector:app: my-app  # 选择所有带有app=my-app标签的Podports:- name: http  # 端口名称(必须唯一)port: 80    # Service端口(集群内访问)targetPort: 8080  # 后端Pod端口(HTTP服务)- name: httpsport: 443targetPort: 8443  # 后端Pod端口(HTTPS服务)
工作原理
  • 客户端通过Service的IP和端口(如10.96.0.10:80)访问。
  • kube-proxy根据端口将请求转发到匹配app=my-app标签的Pod的对应端口(如80808443)。

方法二:使用多个Service指向不同的Pod组

如果不同的功能由不同标签的Pod提供(如前端和后端),可以创建多个Service,每个Service选择不同的Pod组

示例配置
# 前端Service
apiVersion: v1
kind: Service
metadata:name: frontend-service
spec:selector:app: my-apptier: frontend  # 仅选择前端Podports:- port: 80targetPort: 3000---
# 后端Service
apiVersion: v1
kind: Service
metadata:name: backend-service
spec:selector:app: my-apptier: backend  # 仅选择后端Podports:- port: 80targetPort: 8080
工作原理
  • 客户端通过不同的Service IP访问(如frontend-service:80backend-service:80)。
  • 每个Service独立路由到其选择的Pod组(通过标签筛选)。

方法三:使用EndpointSlice(高级场景)

对于超大规模集群,可以通过EndpointSlice手动控制Service与Pod的映射关系,实现更细粒度的端口分配。

示例配置
# 创建EndpointSlice
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:name: my-service-eplabels:kubernetes.io/service-name: my-service
addressType: IPv4
ports:- name: httpprotocol: TCPport: 80- name: httpsprotocol: TCPport: 443
endpoints:- addresses:- "10.244.1.10"  # Pod 1 IPports:- name: httpport: 8080- name: httpsport: 8443- addresses:- "10.244.1.11"  # Pod 2 IPports:- name: httpport: 8080- name: httpsport: 8443
工作原理
  • EndpointSlice显式指定每个Pod的IP和端口映射。
  • Service通过标签kubernetes.io/service-name关联到该EndpointSlice。

选择策略

场景推荐方法
同一组Pod提供多个服务端口单个Service的多端口配置
不同组Pod提供不同服务多个Service指向不同Pod组
超大规模集群或自定义负载均衡使用EndpointSlice

验证配置

  1. 查看Service配置

    kubectl describe service my-service
    
  2. 检查Endpoint映射

    kubectl get endpoints my-service
    
  3. 测试访问

    # 在集群内Pod中测试
    curl http://<SERVICE_IP>:<PORT>
    

总结

通过合理设计Service的端口映射和标签选择器,你可以灵活地将请求路由到不同的Pod端口。对于复杂场景,建议结合使用多个Service和EndpointSlice,以实现更精细的流量控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87933.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aic8800M40低功耗sdio wifi在arm-linux平台调试经验

背景 好多年没有搞过wifi相关的内容了,最近也被安排上了,把一颗低功耗aic8800M40的芯片在arm-linux开发板上做bring up,记录一下SDIO wifi调试的过程和经验,SDIO驱动这里需要改动一些linux内核HOST驱动代码,会在文章中贴出来: AIC8800M40芯片简介 这个wifi芯片是一颗低…

Redis基础(1):NoSQL认识

SQL和NoSQL数据库可以分为关系型数据库和非关系型数据库&#xff0c;SQL(Structured Query Language)相信大家并不陌生&#xff0c;这是用于操作关系型数据库的语言&#xff0c;而NoSQL&#xff0c;顾名思义&#xff0c;它对应的就是非关系数据库&#xff0c;它是操作非关系型数…

QT6 源(153)模型视图架构里的表格窗体视图 QTableWidget 篇三:源码及其元素 QTableWidgetItem 的源代码带注释

&#xff08;14&#xff09;本源代码定义于头文件 qtablewidget . h 头文件 &#xff1a; #ifndef QTABLEWIDGET_H #define QTABLEWIDGET_H#include <QtWidgets/qtableview.h> #include <QtWidgets/qtwidgetsglobal.h> #include <QtCore/qlist.h> #include …

SSL证书是网络安全的一把利刃

SSL证书&#xff08;安全套接层证书&#xff0c;现普遍升级为TLS证书&#xff09;确实是网络安全领域中一把至关重要的“利刃”&#xff0c;它在保护数据传输安全、建立用户信任、防范网络攻击等方面发挥着不可替代的作用。以下是其核心价值与作用的详细分析&#xff1a;一、SS…

Apache 配置文件提权的实战思考

在 Linux 系统中&#xff0c;如果普通用户被授予以 sudo 执行 Apache 并加载自定义配置文件的权限&#xff08;如 sudo apache2 -f /home/user/user.conf&#xff09;&#xff0c;那么该权限极可能被滥用为本地提权路径。 虽然 Apache 默认采用了更严格的权限限制机制&#xff…

代码随想录算法训练营第四十四天|动态规划part11

1143.最长公共子序列 题目链接&#xff1a;1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 文章讲解:代码随想录 思路&#xff1a; 其实就是求两个字符串的最长公共子序列的长度 与公共子数组的区别是可以不连续 &#xff0c;顺序对就可以 状态转移方程不一样 …

部署mysql

# 环境: 操作系统window11 安装了vagrant 通过vagrant部署、启动虚拟机(centos7) # 准备安装mysql8 # 添加 MySQL 官方 YUM 源 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm # 安装 MySQL Server sudo yum install -y mysql-s…

SQL分析与打印-p6spy组件

有性能消耗&#xff0c;只推荐在非生产环境下使用 SpringBoot3MybatisPlushttps://baomidou.com/guides/p6spy/ MyBatis-Plus提供了SQL分析与打印的功能&#xff0c;通过集成p6spy组件&#xff0c;可以方便地输出SQL语句及其执行时长。本功能适用于MyBatis-Plus 3.1.0及以上版本…

FLUX.1-Kontext 高效训练 LoRA:释放大语言模型定制化潜能的完整指南

在人工智能领域&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;的应用浪潮中&#xff0c;高效、低成本地定制模型行为已成为关键需求。LoRA&#xff08;Low-Rank Adaptation&#xff09;技术以其参数高效、资源节省的特性脱颖而出。而 FLUX.1-Kontext 作为一款创新…

群晖 DS3617xs DSM 6.1.7 解决 PhotoStation 安装失败问题 PHP7.0

群晖 DS3617xs DSM 6.1.7 解决 PhotoStation 安装失败问题 PHP7.0问题描述解决方案1. 准备所需文件2. 检查当前 PHP 版本3. 安装 PHP 版本5. 查询已安装好的套件6. 升级 PHP 版本7. 手动安装套件PhotoStation注意事项总结问题描述 在群晖 DS3617xs DSM 6.1.7-15284 版本中&…

pnpm 升级

pnpm 的安装源太多了&#xff0c;感觉系统变量都有引入顺序。 今天踩坑记录&#xff1a; pnpm &#xff0c;如果最初用npm 装的&#xff0c;可以用npm 升级&#xff1b; 如果最初用brew 装的&#xff0c;得用brew 升级&#xff1b; 如果最初是用corepack 装的得用corepack 升级…

[C#] WPF - 资源URI

一、组成 1、资源URI总共包括4个部分(当前程序集可以省略前3个)&#xff1a; ①&#xff1a;pack://application:,,, ②&#xff1a;/[程序集名称] ③&#xff1a;;Component ④&#xff1a;/[资源路径] 二、举例 项目结构如下图所示&#xff1a; 1、MainWindow.xaml 文件…

【Mysql系列】Mysql 多级隔离级别揭秘

目录 一、什么是隔离级别 1.1、为什么复合操作需要事务&#xff1f; 1.2、事务的 ACID 特性如何保障操作可靠性&#xff1f; 1.3、隔离性通过隔离级别来控制 二、为什么用多级隔离级别 2.1、事务并发执行时可能引发以下问题 2.1.1、脏读&#xff08;Dirty Read&#xff…

odoo17 警示: selection attribute will be ignored as the field is related

在 Odoo 17 中&#xff0c;当使用 related 字段时&#xff0c;直接在 fields.Selection 中指定选择列表会被忽略&#xff08;因为选择项会从关联字段继承&#xff09;。wtd_fuwlx fields.Selection(服务类型 , relatedwtd_id.fuwlx, storeTrue)遇到了一个警告&#xff0c;提示…

gemma-3n-E2B多模态模型使用案例:支持文本、图像、语音输入

参考&#xff1a; https://developers.googleblog.com/en/introducing-gemma-3n-developer-guide/下载&#xff1a; https://modelscope.cn/models/google/gemma-3n-E2B-it 模型下载 运行代码&#xff1a; https://github.com/huggingface/huggingface-gemma-recipes 微调&…

计算机网络实验——互联网安全实验

实验1. OSPF路由项欺骗攻击和防御实验一、实验目的验证路由器OSPF配置过程。验证OSPF建立动态路由项过程。验证OSPF路由项欺骗攻击过程。验证OSPF源端鉴别功能的配置过程。验证OSPF防路由项欺骗攻击功能的实现过程。二、实验任务使用自己的语言简述该实验原理。如图1所示的网络…

Pytorch中torch.where()函数详解和实战示例

torch.where() 是 PyTorch 中非常常用的一个函数&#xff0c;功能类似于 NumPy 的 where&#xff0c;用于条件筛选或三元选择操作。在深度学习训练、掩码操作、损失函数处理等场景中非常常见。一、基本语法 torch.where(condition, x, y)condition&#xff1a;一个布尔张量&…

基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍&#xff1a;基于Hadoop的公共自行车数据分布式存储与计算平台设计与实现数据介绍数据预处理 Hadoop 集群的几个主要节点介绍1. NameNode&#xff08;主节点&#xff09;2. DataNod…

Java项目:基于SSM框架实现的程序设计课程可视化教学系统【ssm+B/S架构+源码+数据库+毕业论文】

摘 要 使用旧方法对程序设计课程可视化教学信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在程序设计课程可视化教学信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题…

Unity 实现 NPC 随机漫游行为的完整指南

在游戏开发中&#xff0c;NPC&#xff08;非玩家角色&#xff09;的行为逻辑对于营造真实、沉浸式的游戏世界至关重要。一个常见但又极具表现力的需求是&#xff1a;让 NPC 在场景中自然地随机移动&#xff0c;仿佛它们有自己的意识和目的地。 本文将详细介绍如何使用 Unity 的…