Kubernetes學習之通過Service訪問Pod

一、基礎概述

? ? ? ? 1.當通過deployment等controller動態創建和銷毀pod使得每個pod都有自己的ip地址,當controller用新的pod替代發生故障的pod時,新的pod會分配到新的ip地址,那么客戶端如何穩定的找到并訪問pod提供的服務。

? ? ? ? 2.創建service

? ? ? ? ? ? ? ? service從邏輯上代表一組pod(是由label挑選出來),service擁有自己的ip,這個ip地址不變,客戶端只需要訪問service的ipkubernetes負責建立和維護service和pod之間的映射關系

????????????????????????????????? ? ????

? ? ? ? ? ? ? ? 上述兩個圖表示創建一個deployment并啟動了三個pod運行httpd鏡像,其中標簽為label(run:httpd),service會用這個label來挑選pod。

????????????????

????????????????其中三個pod都分配到各自的ip,這些ip地址只能被kubernetes cluster中的容器和節點訪問。

????????????????

? ? ? ? ? ? ? ? 上述示例創建了一個service,其中service的名字為httpd-svc,其selector指明挑選那些label為run:httpd的pod作為service的后端,并將service的8080端口映射到pod的80端口

????????????????

? ? ? ? ? ? ? ? 如上圖所示可得,http-svc分配到一個cluster-ip,可以通過該ip訪問后端的httpd pod。

? ? ? ? ? ? ? ? 通過kubectl describe可以查看httpd-svc與pod的對應關系:

????????????????

? ? ? ? ? ? ? ? 上圖中羅列了三個pod的ip和端口

? ? ? ? 3.cluster ip的底層實現:

? ? ? ? ? ? ? ? cluster ip是一個虛擬ip,是由kubernetes節點上的iptables規則管理

? ? ? ? ? ? ? ? iptables中大概的規則是:如果cluster內部的pod要訪問httpd-svc則允許,其他源地址訪問httpd-svc,跳轉到相應的規則上。iptables將訪問service的流量轉發到后端pod并使用輪詢的負載均衡策略

? ? ? ? ? ? ? ? 注:cluster的每一個節點都配置了相同的iptables規則,這樣可以確保整個cluster都能夠通過service的cluster ip訪問service。

? ? ? ? 4.dns訪問service:

? ? ? ? ? ? ? ? 因為kubeadm在部署時會默認安裝kube-dns組件,每當有新的的service被創建,kube-dns會添加該service的dns記錄,其cluster中的pod可以通過<service_name>.<namespace_name>訪問service。

? ? ? ? ? ? ? ? 例如可以用httpd-svc.default來訪問Service httpd-svc,其中default可以省略,可以直接使用httpd-svc來訪問。

? ? ? ? ? ? ? ? dns服務器是kube-dns.kube-system.svc.cluster.local,這個實際上就是kube-dns組件,其本身部署在kube-system namespace中的一個service。

? ? ? ? ? ? ? ? 如果需要訪問其他namespace中的service,就必須帶上namespace,kubectl? get? namespace可以查看已有的namespace。

? ? ? ? 5.外網如何訪問service:

? ? ? ? ? ? ? ?kubernetes提供了多種類型的service,默認為cluster ip

? ? ? ? ? ? ? ? clusterIP:service通過cluster內部的ip對外提供服務,只有cluster內的節點和pod可以訪問

? ? ? ? ? ? ? ? nodeport:service通過cluster節點的靜態端口對外提供服務,cluster外部可以通過<nodeip>:<nodeport> 訪問service。

? ? ? ? ? ? ? ? loadbalancer:cloud? provider負責將load balancer的流量導入service。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ? ? ??

? ? ? ? ? ? ? ? 上述示例為nodeport模式下的service,其中8080是clusterip監聽的端口,32312為節點上監聽的端口,每個節點都會監聽此端口并將請求轉發給service。

????????????????

? ? ? ? ? ? ? ? 測試示例:通過三個節點ip+32312端口都可以訪問httpd-svc,其訪問的原理和clusterIP一樣,也是借助iptables。

????????????????

? ? ? ? ? ? ? ? 配置文件中的三個port:

? ? ? ? ? ? ? ? ? ? ? ? nodeport是節點上監聽的端口

? ? ? ? ? ? ? ? ? ? ? ? port是clusterIP上監聽的端口

? ? ? ? ? ? ? ? ? ? ? ? targetport是pod上監聽的端口

? ? ? ? ? ? ? ? 其中node和clusterIp在各自端口上接收的請求都會通過iptables轉發到pod的targetPort

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67883.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【優先算法】專題——前綴和

目錄 一、【模版】前綴和 參考代碼&#xff1a; 二、【模版】 二維前綴和 參考代碼&#xff1a; 三、尋找數組的中心下標 參考代碼&#xff1a; 四、除自身以外數組的乘積 參考代碼&#xff1a; 五、和為K的子數組 參考代碼&#xff1a; 六、和可被K整除的子數組 參…

CDDIS從2025年2月開始數據遷移

CDDIS 將從 2025 年 2 月開始將我們的網站從 cddis.nasa.gov 遷移到 earthdata.nasa.gov&#xff0c;并于 2025 年 6 月結束。 期間可能對GAMIT聯網數據下載造成影響。

谷歌Titans模型論文解析,Transformer迎來變革拐點——DeepSeek能否“接招”?

一、引入 Titans 模型 我們將深入探討谷歌研究院的一篇新論文《Titans: Learning to Memorize at Test Time》&#xff0c;該論文介紹了一種名為 Titans 的新模型架構。 Titans 在緩解 Transformer 二次方成本問題的同時&#xff0c;展現出了令人期待的成果。Titans 模型的設…

新春賀歲,共赴AGI之旅

點擊藍字 關注我們 AI TIME歡迎每一位AI愛好者的加入&#xff01; 往期精彩文章推薦 季姮教授獨家文字版干貨 | 面向知識淵博的大語言模型 關于AI TIME AI TIME源起于2019年&#xff0c;旨在發揚科學思辨精神&#xff0c;邀請各界人士對人工智能理論、算法和場景應用的本質問題…

Baklib推動數字化內容管理解決方案助力企業數字化轉型

內容概要 在當今信息爆炸的時代&#xff0c;數字化內容管理成為企業提升效率和競爭力的關鍵。企業在面對大量數據時&#xff0c;如何高效地存儲、分類與檢索信息&#xff0c;直接關系到其經營的成敗。數字化內容管理不僅限于簡單的文檔存儲&#xff0c;更是整合了文檔、圖像、…

【memgpt】letta 課程4:基于latta框架構建MemGpt代理并與之交互

Lab 3: Building Agents with memory 基于latta框架構建MemGpt代理并與之交互理解代理狀態,例如作為系統提示符、工具和agent的內存查看和編輯代理存檔內存MemGPT 代理是有狀態的 agents的設計思路 每個步驟都要定義代理行為 Letta agents persist information over time and…

測試方案和測試計劃相同點和不同點

在軟件測試領域&#xff0c;測試方案與測試計劃皆為舉足輕重的關鍵文檔&#xff0c;盡管它們有著緊密的關聯&#xff0c;但在目的與內容層面存在著顯著的差異。相同點&#xff1a; 1.共同目標&#xff1a;測試方案和測試計劃的核心目標高度一致&#xff0c;均致力于保障軟件的…

詳細介紹:網站背景更換功能

目錄 1. HTML 部分 2. JavaScript 部分 3. 完整流程 4. 總結 5. 適用場景 本文將介紹如何通過文件上傳實現網站背景圖片的更換。通過使用 JavaScript 和 Axios&#xff0c;我們可以允許用戶上傳圖片文件并將其作為網站的背景圖片。上傳的圖片 URL 會保存在瀏覽器的 localSt…

嵌入原則:數據特征如何 融入 模型的 損失地形

嵌入原則&#xff1a;數據特征如何 融入 模型的 損失地形 第一節&#xff1a;嵌入原則的基本概念與公式解釋 機器學習中的嵌入原則&#xff0c;就像 “雕刻師” 將 “石塊的紋理” 逐漸融入到 “雕塑的造型” 中。數據特征不再是獨立的輸入&#xff0c;而是被模型 “吸收” 和…

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中調用的IP核&#xff0c;新建文件PLL_test.v 2、代碼如圖 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…

【C++】P5734 【深基6.例6】文字處理軟件

博客主頁&#xff1a; [小????????] 本文專欄: C 文章目錄 &#x1f4af;前言&#x1f4af;題目描述&#x1f4af;題目描述輸入格式輸出格式示例輸入與輸出輸入&#xff1a;輸出&#xff1a; &#x1f4af;我的做法操作1&#xff1a;在文檔末尾插入字符串操作2&…

后盾人JS -- 原型

沒有原型的對象 也有沒有原型的對象 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

洛谷 P1130 紅牌 C語言

題目描述 某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當復雜&#xff0c;一共包括 N 個步驟。每一步驟都由政府的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快進程&#xff0c;每一步政府都派了 M 個工作人員來檢查材料。不幸的是&…

【線程】基于環形隊列的生產者消費者模型

1 環形隊列 環形隊列采用數組來模擬&#xff0c;用取模運算來模擬環狀特性。 1.如何判斷環形隊列為空或者為滿? 當環形隊列為空時&#xff0c;頭和尾都指向同一個位置。當環形隊列為滿時&#xff0c;頭和尾也都指向同一個位置。 因此&#xff0c; 可以通過加計數器或者標記…

二分/雙指針/單調棧隊列專題

1.4924. 矩陣 - AcWing題庫 一開始打表找規律以為是右上角向左下角遞增,但當n很大的時候就不對了,因此我們得去觀察 i * i 100000 * (i - j) j * j i * j 這個式子,我們關心的是這個式子的單調性因此我們可以分別將i和j看作常數來對式子進行求導,可以得到 f(i) 2 * i 10…

Shell $0

個人博客地址&#xff1a;Shell $0 | 一張假鈔的真實世界 我們已經知道在Shell中$0表示Shell腳本的文件名&#xff0c;但在有腳本調用的情形中&#xff0c;子腳本中的$0會是什么值呢&#xff1f;我們通過下面的實例來看。 已測試系統列表&#xff1a; Mac OS X EI Capitan 1…

商品列表及商品詳情展示

前言 本文將展示一段結合 HTML、CSS 和 JavaScript 的代碼&#xff0c;實現了一個簡單的商品展示頁面及商品詳情&#xff0c;涵蓋數據獲取、渲染、搜索及排序等功能。 效果展示 點擊不同的商品會展示對應的商品詳情。 代碼部分 代碼總體實現 <!DOCTYPE html> <htm…

[ VS Code 插件開發 ] 使用 Task ( 任務 ) 代替 createTerminal (終端) 來執行命令

VSCode 官方自己的插件就是這樣執行命令的. 使用體驗 比 默認的終端 好太多了. 重用終端, Shell 集成 , 按任意鍵關閉, 任務是否成功, 左側命令操作 (菜單中功能很多) 等 import * as vscode from vscode; // 執行的命令 let command_str "npm run dev" // 工作目…

大模型綜述一鏡到底(全文八萬字) ——《Large Language Models: A Survey》

論文鏈接&#xff1a;https://arxiv.org/abs/2402.06196 摘要&#xff1a;自2022年11月ChatGPT發布以來&#xff0c;大語言模型&#xff08;LLMs&#xff09;因其在廣泛的自然語言任務上的強大性能而備受關注。正如縮放定律所預測的那樣&#xff0c;大語言模型通過在大量文本數…

Python處理數據庫:MySQL與SQLite詳解

Python處理數據庫&#xff1a;MySQL與SQLite詳解 在數據處理和存儲方面&#xff0c;數據庫扮演著至關重要的角色。Python提供了多種與數據庫交互的方式&#xff0c;其中pymysql庫用于連接和操作MySQL數據庫&#xff0c;而SQLite則是一種輕量級的嵌入式數據庫&#xff0c;Pytho…