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
英文地址,請注明出處:http://en.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 的…