Kubernetes的微服務

用控制器來完成集群的工作負載,那么應用如何暴漏出去?需要通過微服務暴漏出去后才能被訪問

Service是一組提供相同服務的Pod對外開放的接口。

借助Service,應用可以實現服務發現和負載均衡。

service默認只支持4層負載均衡能力,沒有7層功能。(可以通過Ingress實現)

#生成控制器文件并建立控制器
[root@k8s-master ~]# kubectl create deployment timinglee --image myapp:v1 ?--replicas 2 --dry-run=client -o yaml > timinglee.yaml
#生成微服務yaml追加到已有yaml中
[root@k8s-master ~]# kubectl expose deployment timinglee --port 80 --target-port 80 --dry-run=client -o yaml >> timinglee.yaml

然后編輯文件,用---分隔開

微服務默認使用iptables調度

三 ipvs模式

  • Service 是由 kube-proxy 組件,加上 iptables 來共同實現的

  • kube-proxy 通過 iptables 處理 Service 的過程,需要在宿主機上設置相當多的 iptables 規則,如果宿主機有大量的Pod,不斷刷新iptables規則,會消耗大量的CPU資源

  • IPVS模式的service,可以使K8s集群支持更多量級的Pod

所以我們一般使用ipvs模式,在各個節點上都下載一下ipvs,然后

kubectl -n kube-system edit cm kube-proxy

修改master節點的代理配置

重啟pod,在pod運行時配置文件中采用默認配置,當改變配置文件后已經運行的pod狀態不會變化,所以要重啟pod

切換ipvs模式后,kube-proxy會在宿主機上添加一個虛擬網卡:kube-ipvs0,并分配所有service IP

四 微服務類型詳解

4.1 clusterip

特點:

clusterip模式只能在集群內訪問,并對集群內的pod提供健康檢測和自動發現功能

4.2 ClusterIP中的特殊模式headless

headless(無頭服務)

對于無頭 Services 并不會分配 Cluster IP,kube-proxy不會處理它們, 而且平臺也不會為它們進行負載均衡和路由,集群訪問通過dns解析直接指向到業務pod上的IP,所有的調度有dns單獨完成

4.3 nodeport

通過ipvs暴漏端口從而使外部主機通過master節點的對外ip:<port>來訪問pod業務

[!NOTE]

nodeport默認端口

nodeport默認端口是30000-32767,超出會報錯

4.4 loadbalancer

云平臺會為我們分配vip并實現訪問,如果是裸金屬主機那么需要metallb來實現ip的分配

4.5 metalLB

metalLB功能

為LoadBalancer分配vip

4.6 externalname

  • 開啟services后,不會被分配IP,而是用dns解析CNAME固定域名來解決ip變化問題

  • 一般應用于外部業務和pod溝通或外部業務遷移到pod內時

  • 在應用向集群遷移過程中,externalname在過度階段就可以起作用了。

  • 集群外的資源遷移到集群時,在遷移的過程中ip可能會變化,但是域名+dns解析能完美解決此問題

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

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

相關文章

退出登錄后頭像還在?這個緩存問題坑過多少前端!

目錄 1. 為什么退出登錄后頭像還在&#xff1f; ① 緩存沒清理干凈 ② 頭像URL沒更新 ③ 后端會話失效&#xff0c;但靜態資源可訪問 2. 怎么解決&#xff1f;5種常見方案 ? 方案1&#xff1a;強制刷新頁面&#xff08;簡單粗暴&#xff09; ? 方案2&#xff1a;給頭像…

Windows下白嫖ClaudeCode

我的邀請鏈接&#xff1a;https://anyrouter.top/register?afffMJn 我的邀請鏈接&#xff1a;https://anyrouter.top/register?afffMJn 我的邀請鏈接&#xff1a;https://anyrouter.top/register?afffMJn 兄弟們&#xff0c;交個朋友啊&#xff01;一定要用我的呀&#xff0…

windows在anaconda中下載安裝fasttext

windows在anaconda中下載安裝fasttext 1.訪問fasttext-wheel&#xff0c;點擊對應鏈接&#xff0c;下載對應Python版本、操作系統類型 的.whl文件&#xff1a; 鏈接地址&#xff1a;https://pypi.org/project/fasttext-wheel/#files 打開anaconda終端&#xff0c;切換到上面的…

mysql5.7系列-索引下推(cover_index)

什么是索引下推 ICP&#xff08;Index Condition Pushdown&#xff09;是在MySQL 5.6版本上推出的查詢優化策略&#xff0c;把本來由Server層做的索引條件檢查下推給存儲引擎層來做&#xff0c;以降低回表和訪問存儲引擎的次數&#xff0c;提高查詢效率。 回顧下mysql的架構分…

計算機網絡(基礎概念)

計算機網絡&#xff08;基礎概念&#xff09;1 初識協議1.1 協議分層2 OSI七層模型2.1 物理層2.2 數據鏈路層2.3 網絡層2.4 傳輸層2.5 應用層3 TCP/IP協議族3.1 什么是TCP/IP協議?3.1.1 OS與網絡關系4 網絡傳輸的基本流程4.1 局域網4.2 MAC地址5 跨網絡傳輸5.1 IP地址6 Socket…

專題 JavaScript 函數基礎

你將知道&#xff1a;函數聲明和表達式函數聲明和表達式之間的區別什么是匿名函數什么是 IIFE命名函數表達式this 關鍵字函數是調用該函數時執行的代碼塊 。函數聲明和表達式讓我們回顧一下它的語法&#xff1a;functionfunctionName(param1, param2, ..., paramN) {// Functio…

數據結構——優先隊列(priority_queue)的巧妙運用

優先隊列是一種相對高級的數據結構&#xff0c;它的底層原理是二叉堆。然而本篇不會執著于深挖其背后的原理&#xff0c;更主要的是理一下它在題目中的一些實用方法&#xff0c;幫助你更快的上手使用。 優先隊列(priority_queue) 優先隊列的特別之處就在于它可以自動進行排序&…

Java:繼承和多態(必會知識點整理)

主要內容繼承多態向上轉型向下轉型方法重寫方法重載super關鍵字動態綁定封裝訪問控制構造方法規則一、繼承 1. 概念&#xff1a; 一句話說就是&#xff1a;“共性抽取&#xff0c;代碼復用”子類會將父類中的成員變量或者成員方法繼承到子類中子類繼承父類之后&#xff0c;必須…

基于esp32系列的開源無線dap-link項目使用介紹

基于esp32系列的開源無線dap-link項目使用介紹&#x1f516;有關esp32/8266相關項目&#xff1a;需要自己搭建編譯環境&#xff1a; https://github.com/windowsair/wireless-esp8266-dap/tree/master&#x1f33f;支持esp32/c3/s3,支持在線固件燒錄&#xff0c;支持AP配網&…

深入了解linux系統—— 進程信號的產生

前言 進程在收到信號之后&#xff0c;可以立即處理&#xff0c;也可以在合適的時間再處理&#xff08;1-31號普通信號可以不被立即處理&#xff09; 信號不是被立即處理&#xff0c;信號就要被保存下來&#xff0c;讓進程在合適的時間再去處理。 相關概念 在了解進程是如何保存…

【Bluedroid】藍牙協議棧enable流程深度解析

本文詳細剖析 Bluedroid 藍牙功能啟用的核心流程&#xff0c;從enable()函數觸發開始&#xff0c;深入解析藍牙協議棧的異步啟動機制、核心協議模塊初始化、硬件控制器綁定及狀態同步全流程。重點闡述接口就緒性檢查、異步線程管理、配置文件回調機制等關鍵環節&#xff0c;揭示…

各種開發語言主要語法對比

各類主流編程語言的語法有著顯著差異&#xff0c;這些差異源于語言設計哲學&#xff08;簡潔性 vs 顯式性&#xff09;、應用領域&#xff08;系統級、Web、數據科學&#xff09;、運行方式&#xff08;編譯 vs 解釋&#xff09;以及支持的范式&#xff08;面向對象、函數式、過…

小鵬汽車6月交付車輛34,611輛,同比增長224%

小鵬汽車-W(09868)發布公告&#xff0c;2025年6月&#xff0c;小鵬汽車共交付智能電動汽車34,611輛&#xff0c;同比增長224%&#xff0c;這標志著小鵬汽車已連續第八個月交付量超過了30,000輛。2025年第二季度&#xff0c;小鵬汽車共交付103,181 輛智能電動車&#xff0c;創下…

深入理解觀察者模式:構建松耦合的交互系統

在軟件開發中&#xff0c;我們經常遇到這樣的場景&#xff1a;一個對象的狀態變化需要通知其他多個對象&#xff0c;并且這些對象需要根據變化做出相應的反應。比如&#xff0c;用戶界面中的數據變化需要實時反映到多個圖表上&#xff0c;或者電商系統中的庫存變化需要通知訂單…

React強大且靈活hooks庫——ahooks入門實踐之常用場景hook

什么是 ahooks&#xff1f; ahooks 是一個 React Hooks 庫&#xff0c;提供了大量實用的自定義 hooks&#xff0c;幫助開發者更高效地構建 React 應用。其中場景類 hooks 是 ahooks 的一個重要分類&#xff0c;專門針對特定業務場景提供解決方案。 安裝 ahooks npm install …

Qt常用控件之QWidget(一)

Qt常用控件之QWidget&#xff08;一&#xff09;1.QWidget2.enabled屬性2.geometry&#x1f31f;&#x1f31f;hello&#xff0c;各位讀者大大們你們好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f680;系列專欄&#xff1a;【Qt的學習】 &#x1f4dd;&#x1f4dd;本…

AIOT開發選型:行空板 K10 與 M10 適用場景與選型深度解析

前言 隨著人工智能和物聯網技術的飛速發展&#xff0c;越來越多的開發者、學生和愛好者投身于創意項目的構建。 在眾多的開發板中&#xff0c;行空板 K10 和 M10 以其獨特的優勢脫穎而出。 本文旨在為讀者提供一份詳盡的行空板 K10 和 M10 對比分析&#xff0c;從適用場景、…

redis匯總筆記

語雀完整版&#xff1a; https://www.yuque.com/g/mingrun/embiys/calwqx/collaborator/join?tokensLcLnqz5Rv8hOKEB&sourcedoc_collaborator# 《Redis筆記》 Redis 一般問題 Redis內存模型&#xff08;I/O多路模型&#xff09;多路復用IO如何解釋 為什么Redis要使用單線…

STM32用PWM驅動步進電機

硬件介紹&#xff1a;連線&#xff1a;注意這里stp連的是pwm脈沖&#xff0c;dir連的是方向到時候代碼pwm波形就是從這里來的&#xff0c;具體接線根據你的代碼來注意要點&#xff1a;步進電機和舵機驅動是不一樣的&#xff0c;它是根據步長來移動的&#xff0c;所以要開一個中…

力扣25.7.10每日一題——重新安排會議得到最多空余時間 II

Description 今天這道題和昨天類似&#xff0c;只是允許順序變化。 Solution 把會議區間視作桌子&#xff0c;空余時間視作空位&#xff0c;我們要把一個桌子移到別的空位中。 初步想法是枚舉桌子&#xff0c;找一個長度大于等于桌子長度的空位移過去。看上去&#xff0c;找…