k8s面試題-ingress

場景:我通過deployment更新pod,ingress是怎么把新的請求流量發送到我新的pod的?是怎么監控到我更新的pod的?

在 Kubernetes 中,Ingress 是一種 API 對象,用于管理外部訪問到集群內服務的 HTTP 和 HTTPS 路由。當你通過 Deployment 更新一個 Pod 時,Ingress 并不會直接監控 Pod 的更新,而是通過一系列的機制來感知服務的變化并更新路由規則。以下是整個過程的詳細解釋:

1.Deployment 更新 Pod 的過程
當你更新 Deployment 的配置(例如修改鏡像版本)時,Kubernetes 的控制器會根據新的配置逐步替換舊的 Pod,創建新的 Pod 并刪除舊的 Pod。這個過程稱為滾動更新(Rolling Update)。
2.Service 的作用
在 Kubernetes 中,Pod 是動態的,可能會因為更新、故障等原因被銷毀和重建。為了確保外部流量能夠穩定地訪問到服務,通常會使用 Service 來抽象 Pod 的訪問方式。Service 通過一個穩定的虛擬 IP(ClusterIP)和端口,將流量轉發到后端的 Pod。
當 Deployment 更新 Pod 時,Service 會自動感知后端 Pod 的變化。這是因為 Kubernetes 的 Endpoint Controller 會監控 Pod 的狀態變化,并更新 Service 的 Endpoint 列表。Endpoint 列表記錄了所有健康且可用的 Pod 的 IP 地址和端口。

3.Ingress 的工作原理
Ingress 本身并不直接管理 Pod,而是通過 Ingress Controller 來實現 HTTP/HTTPS 流量的路由。Ingress Controller 是一個獨立的組件,它會監控 Kubernetes 集群中的 Ingress 資源,并根據 Ingress 的配置動態生成和更新路由規則。

4.Ingress 如何感知 Pod 的更新
當 Deployment 更新 Pod 時,Ingress 通過以下機制感知并更新路由規則:
4.1 監控 Service 的 Endpoint
Ingress Controller 會監控 Service 的 Endpoint 列表。當 Deployment 更新 Pod 時,Endpoint Controller 會更新 Service 的 Endpoint 列表,移除舊 Pod 的 IP 地址并添加新 Pod 的 IP 地址。
Ingress Controller 會定期輪詢或通過 Kubernetes 的事件機制(Watch API)感知 Endpoint 列表的變化。

4.2 更新路由規則
當 Ingress Controller 檢測到 Endpoint 列表的變化時,它會重新生成路由規則。這些路由規則通常會根據 Ingress 資源的配置和 Service 的 Endpoint 列表動態生成。
例如,如果 Ingress 配置了一個 HTTP 路由規則,將流量轉發到某個 Service,Ingress Controller 會根據 Service 的 Endpoint 列表更新負載均衡器的后端目標。如果 Endpoint 列表中有新的 Pod IP 地址,Ingress Controller 會將流量轉發到新的 Pod。

4.3 負載均衡
Ingress Controller 通常會使用負載均衡算法(如輪詢、最少連接等)將流量分配到后端的 Pod。當 Pod 更新后,Ingress Controller 會根據新的 Endpoint 列表重新分配流量,確保流量能夠到達新的 Pod。

示例:
假設你有一個 Deployment 和一個 Service,以及一個 Ingress 資源,以下是整個流程的簡化示例:
1.更新 Deployment
你更新了 Deployment 的鏡像版本。
Kubernetes 控制器開始滾動更新 Pod,創建新的 Pod 并刪除舊的 Pod。
2.Endpoint 更新
Endpoint Controller 檢測到 Pod 的變化,更新 Service 的 Endpoint 列表。
Endpoint 列表中移除了舊 Pod 的 IP 地址,添加了新 Pod 的 IP 地址。
3.Ingress Controller 感知變化
Ingress Controller 通過 Watch API 檢測到 Endpoint 列表的變化。
Ingress Controller 重新生成路由規則,更新負載均衡器的后端目標。
4.流量轉發
Ingress Controller 根據新的路由規則將流量轉發到新的 Pod。
用戶訪問 Ingress 的域名時,流量會通過 Ingress Controller 轉發到新的 Pod。

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

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

相關文章

RHCE 練習三:架設一臺 NFS 服務器

一、題目要求 1、開放 /nfs/shared 目錄,供所有用戶查詢資料 2、開放 /nfs/upload 目錄,為 192.168.xxx.0/24 網段主機可以上傳目錄,并將所有用戶及所屬的組映射為 nfs-upload,其 UID 和 GID 均為 210 3.將 /home/tom 目錄僅共享給 192.16…

【動態導通電阻】GaN HEMT動態導通電阻的精確測量

2023 年 7 月,瑞士洛桑聯邦理工學院的 Hongkeng Zhu 和 Elison Matioli 在《IEEE Transactions on Power Electronics》期刊發表了題為《Accurate Measurement of Dynamic ON-Resistance in GaN Transistors at Steady-State》的文章,基于提出的穩態測量方法,研究了氮化鎵(…

AI 制作游戲美術素材流程分享(程序員方向粗糙版)

AI 制作游戲美術素材分享(程序員方向粗糙版) 視頻講解: 抖音:https://www.douyin.com/user/self?from_tab_namemain&modal_id7505691614690561295&showTabpost Bilibili: https://www.bilibili.com/video/BV1ojJGzZEve/ 寫在最前面: 本方法比較粗糙,只對對美術風…

Java求職面試:互聯網大廠技術棧深度解析

文章簡述 在這篇文章中,我們將通過一個模擬的面試場景,帶你深入了解Java求職面試中可能會遇到的技術棧問題。通過這個故事,你可以學習到相關技術點的具體應用場景和面試技巧。 正文 場景:某互聯網大廠的面試現場 面試官&#…

學習日記-day11-5.20

完成目標: comment.java package com.zcr.pojo; import org.hibernate.annotations.GenericGenerator;import javax.persistence.*; //JPA操作表中數據,可以將對應的實體類映射到一張表上Entity(name "t_comment")//表示當前的實體類與哪張表…

機器學習第十九講:交叉驗證 → 用五次模擬考試驗證真實水平

機器學習第十九講:交叉驗證 → 用五次模擬考試驗證真實水平 資料取自《零基礎學機器學習》。 查看總目錄:學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的文章:DeepSeek R1本地與線上滿血版部署:超詳細手把手指南 交叉驗證…

Linux面試題集合(6)

創建多級目錄或者同級目錄 mkdir -p 文件名/文件名/文件名 mkdir -p 文件名 文件名 文件名 Linux創建一個文件 touch 文件名 DOS命令創建文件 echo 內容>文件名(創建一個有內容的文件) echo >文件名(創建一個沒有內容的文件&#xff09…

Vue百日學習計劃Day46-48天詳細計劃-Gemini版

Day 46: <KeepAlive> - 組件緩存與優化 (~3 小時) 本日目標: 理解 <KeepAlive> 的作用&#xff0c;學會如何使用它來緩存組件實例&#xff0c;從而優化應用性能和用戶體驗。所需資源: Vue 3 官方文檔 (<KeepAlive>): https://cn.vuejs.org/guide/built-ins/…

SpringBean模塊(三)具有生命周期管理能力的類(1)AutowireCapableBeanFactory

一、介紹 1、簡介 AutowireCapableBeanFactory 是 Spring 框架中的一個接口&#xff0c;位于 org.springframework.beans.factory 包下&#xff0c;它提供了更底層的 Bean 實例化、依賴注入和生命周期管理能力&#xff0c;即使這些 Bean 沒有通過常規的 Component 或 XML 注冊…

Service Mesh

目錄 一、Service Mesh 的核心特點 二、Service Mesh 的典型架構 1. Sidecar 模式 2. 控制平面與數據平面分離 三、Service Mesh 解決的核心問題 四、典型應用場景 五、主流 Service Mesh 框架對比 六、挑戰與局限性 七、未來趨勢 總結 Istio 一、Istio 核心組件與…

黑馬Java基礎筆記-13常用查找算法

查找算法 基本查找(也叫順序查找&#xff0c;線性查找) 二分查找&#xff08;需要有序數據&#xff09; public static int binarySearch(int[] arr, int number){//1.定義兩個變量記錄要查找的范圍int min 0;int max arr.length - 1;//2.利用循環不斷的去找要查找的數據wh…

Go 語言 vs C+Lua(Skynet)游戲服務器方案對比分析

為啥挑這兩個呢&#xff1f;因為兩種技術分別對應CSP模型和Actor模型&#xff0c;都是經過時間檢驗的成熟且可靠的并發模型&#xff0c;問了很多地方&#xff0c;經過gpt整理得出如下報告。 從開發效率、運行性能、熱更新擴展、云部署與水平擴展能力、多類型游戲支持等五個維度…

LeetCode 925. 長按鍵入 java題解

雙指針。不會寫。 https://leetcode.cn/problems/long-pressed-name/description/ class Solution {public boolean isLongPressedName(String name, String typed) {int len1name.length();int len2typed.length();int i0,j0;while(i<len1&&j<len2){if(name.ch…

如何使用通義靈碼提高前端開發效率

工欲善其事&#xff0c;必先利其器。對于前端開發而言&#xff0c;使用VSCode已經能夠極大地提高前端的開發效率了。但有了AI加持后&#xff0c;前端開發的效率又更上一層樓了&#xff01; 本文采用的AI是通義靈碼插件提供的通義千問大模型&#xff0c;是目前AI性能榜第一梯隊…

【小明劍魔視頻Viggle AI模仿的核心算法組成】

Viggle AI 作為一款先進的生成式視頻AI工具&#xff0c;其核心技術棧融合了多項前沿算法。以下是深度解析其核心算法架構及實現原理&#xff1a; 一、核心算法組成 1. 運動控制生成&#xff08;Motion Control Generation&#xff09; 算法框架&#xff1a;基于擴散模型&…

解決Power BI Desktop導入Excel數據第一行不是列標題問題

選中第一行不是列標題的表→鼠標右鍵→選擇編輯查詢→進入Power Query界面→點擊“將第一行用作標題”→點擊左邊的“關閉并應用” 第一行就提升為標題了

對 Lambda 架構問題的深入理解

感謝 GPT&#xff0c;對很多問題的理解有機會更深。 大家攻擊 Lambda 架構&#xff0c;常說的一個點就是 “實時離線指標存在差異”。“實時離線指標存在差異”&#xff0c;是一個真實困擾運營方的問題嗎&#xff1f; 答案&#xff1a;是的&#xff0c;這是一個真實生活中的痛…

React中使用ahooks處理業務場景

// 從 ahooks 引入 useDynamicList 鉤子函數&#xff0c;用于管理動態列表數據&#xff08;增刪改&#xff09; import { useDynamicList } from ahooks;// 從 ant-design/icons 引入兩個圖標組件&#xff1a;減號圓圈圖標和加號圓圈圖標 import { MinusCircleOutlined, PlusCi…

藍橋杯2114 李白打酒加強版

問題描述 話說大詩人李白, 一生好飲。幸好他從不開車。 一天, 他提著酒顯, 從家里出來, 酒顯中有酒 2 斗。他邊走邊唱: 無事街上走&#xff0c;提顯去打酒。 逢店加一倍, 遇花喝一斗。 這一路上, 他一共遇到店 N 次, 遇到花 M 次。已知最后一次遇到的是花, 他正好把酒喝光了。…

小土堆pytorch--神經網路-卷積層池化層

神經網路-卷積層&池化層 一級目錄二級目錄三級目錄 1. 神經網路-卷積層2. 神經網路最大池化的應用 一級目錄 二級目錄 三級目錄 1. 神經網路-卷積層 在PyTorch中&#xff0c;torch.nn.Conv2d函數定義了一個二維卷積層&#xff0c;其常用參數包括&#xff1a; in_channel…