k8s從入門到放棄之Service負載均衡

k8s從入門到放棄之Service負載均衡

在 Kubernetes (K8s) 中,Service 是一種抽象,它定義了一組邏輯上的 Pod 和訪問它們的策略。Service 的主要目的是提供一種可靠的方式來訪問一組具有相同標簽(Label)的 Pod,即使這些 Pod 可能會在集群中被動態地創建或銷毀。

Service的核心功能

  • 服務發現:通過 DNS 或者環境變量的方式,讓其他應用可以找到并訪問到這個 Service。
  • 負載均衡:將到達 Service 的請求分發給后端的多個 Pod 實例。
  • 穩定的 IP 地址和 DNS 名稱:為一組 Pod 提供一個固定的 IP 地址和 DNS 名稱,即使后端的 Pod 發生了變化,如重啟、擴展等操作。
  • 流量代理:通過 kube-proxy 組件實現對流量的轉發,支持多種代理模式,包括 userspace、iptables 和 IPVS。

Service的類型

  • ClusterIP:默認類型,通過集群內部 IP 暴露服務,只能從集群內部訪問。
  • NodePort:通過每個節點的 IP 和靜態端口暴露服務,允許外部流量通過節點 IP 和 NodePort 訪問服務。
  • LoadBalancer:通常用于云環境中,自動創建一個外部負載均衡器,并分配一個外部 IP 來暴露服務。

ClusterIP案例

資源文檔kubectl explain Service.spec

apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-nginx
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: nginximage: nginx:1.20.0readinessProbe:tcpSocket:port: 80resources:limits:cpu: "100m"ports:- containerPort: 80
---apiVersion: v1
kind: Service
metadata:name: nginx-svc
spec:type: ClusterIPselector:app: webports:- protocol: TCPport: 80targetPort: 80

NodePort案例

資源文檔kubectl explain Service.spec

apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-nginx
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: nginximage: nginx:1.20.0readinessProbe:tcpSocket:port: 80resources:limits:cpu: "100m"ports:- containerPort: 80---apiVersion: v1
kind: Service
metadata:name: nginx-svc
spec:type: NodePortselector:app: webports:- protocol: TCPport: 80targetPort: 80

查看集群外部訪問地址

[root@master /]# kubectl get svc 
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        20d
nginx-svc    NodePort    10.107.140.239   <none>        80:32017/TCP   2m16s

LoadBalancer案例

資源文檔 kubectl explain Service.spec

apiVersion: apps/v1
kind: Deployment
metadata:name: deploy-nginx
spec:replicas: 1strategy:type: Recreateselector:matchLabels:app: webtemplate:metadata:labels:app: webspec:containers:- name: nginximage: nginx:1.20.0readinessProbe:tcpSocket:port: 80resources:limits:cpu: "100m"ports:- containerPort: 80---apiVersion: v1
kind: Service
metadata:name: nginx-svc
spec:type: LoadBalancerselector:app: webports:- protocol: TCPport: 80targetPort: 80

查看集群外部訪問地址

[root@master /]# kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)        AGE
kubernetes   ClusterIP      10.96.0.1       <none>         443/TCP        20d
nginx-svc    LoadBalancer   10.101.116.99   10.244.2.240   80:30143/TCP   2m40s

Service 是 Kubernetes 中非常重要的概念之一,它使得應用程序可以在分布式系統中進行有效的通信和協作。通過合理配置 Service,可以確保應用即使在高動態性的容器化環境中也能保持良好的可用性和可訪問性。

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

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

相關文章

【題解-洛谷】P10480 可達性統計

題目&#xff1a;P10480 可達性統計 題目描述 給定一張 N N N 個點 M M M 條邊的有向無環圖&#xff0c;分別統計從每個點出發能夠到達的點的數量。 輸入格式 第一行兩個整數 N , M N,M N,M&#xff0c;接下來 M M M 行每行兩個整數 x , y x,y x,y&#xff0c;表示從 …

SpringCloud2025+SpringBoot3.5.0+gateway+webflux子服務路由報503

文章目錄 前言一、問題二、原因1.分析2.配置靜態路由再試3.定位 總結 前言 本來昨天就應該也記錄下&#xff0c;免得忘記的&#xff0c;但是有點晚了&#xff0c;酒沒寫&#xff0c;真的是被坑慘了。 當然這也是追求最新的代價&#xff0c;也是對新技術、老知識點的重溫…

破解路內監管盲區:免布線低位視頻樁重塑停車管理新標準

城市路內停車管理常因行道樹遮擋、高位設備盲區等問題&#xff0c;導致車牌識別率低、逃費率高&#xff0c;傳統模式在復雜路段束手無策。免布線低位視頻樁憑借超低視角部署與智能算法&#xff0c;正成為破局關鍵。該設備安裝于車位側方0.5-0.7米高度&#xff0c;直接規避樹枝遮…

RAG 文檔解析難點1:多欄布局的 PDF 如何解析

寫在前面 在構建檢索增強生成 (Retrieval-Augmented Generation, RAG) 應用時,高質量的數據源是成功的基石。PDF 作為一種廣泛使用的文檔格式,承載著海量的知識。然而,許多 PDF 文檔,特別是學術論文、期刊、雜志和一些報告,都采用了多欄布局 (multi-column layout)。 直…

全面掌握Pandas時間序列處理:從基礎到實戰

時間序列數據在金融分析、物聯網、商業智能等領域無處不在。作為Python數據分析的核心庫&#xff0c;Pandas提供了強大而全面的時間序列處理功能。本文將系統介紹Pandas時間序列處理的各個方面&#xff0c;從基礎概念到高級應用&#xff0c;幫助您在實際工作中高效處理時間序列…

vscode 離線安裝第三方庫跳轉庫

我安裝的是C/C的函數跳轉 下載的離線庫&#xff1a; 項目首頁 - vscode代碼自動補全跳轉插件離線安裝包:cpptools-win32.vsix是一款專為VSCode設計的離線安裝插件&#xff0c;特別適合無法連接網絡的電腦環境。通過安裝此插件&#xff0c;您的VSCode將獲得強大的代碼自動跳轉…

GitHub 趨勢日報 (2025年06月05日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 1472 onlook 991 HowToCook 752 ChinaTextbook 649 quarkdown 451 scrapy 324 age…

關于如何使用VScode編譯下載keil工程的步驟演示

1、vscode的插件市場下載keil Assistant 2 、點設置 3、復制keil的地址 4、粘貼到第…

OD 算法題 B卷【最大島嶼體積】

文章目錄 最大島嶼體積 最大島嶼體積 大于0的數表示陸地&#xff0c;0表示水&#xff0c;請計算由陸地、水組成的網格中最大島嶼的體積&#xff1b;陸地的數字之和表示所在島嶼的體積&#xff0c;島嶼總是被水包圍&#xff0c;并且每座島嶼只能由水平或者垂直方向上相鄰的陸地…

一文讀懂 Docker Compose(白話版)

一、Docker Compose 是個啥&#xff1f; 想象你開餐廳&#xff1a; 單容器 一個廚師 &#x1f468;&#x1f373;Docker Compose 整個后廚團隊 &#x1f468;&#x1f373;&#x1f469;&#x1f373;&#x1f9d1;&#x1f373; 菜單 工作流程 用個菜單文件&#xff08;…

Java畢業設計:WML信息查詢與后端信息發布系統開發

JAVAWML信息查詢與后端信息發布系統實現 一、系統概述 本系統基于Java和WML(無線標記語言)技術開發&#xff0c;實現了移動設備上的信息查詢與后端信息發布功能。系統采用B/S架構&#xff0c;服務器端使用Java Servlet處理請求&#xff0c;數據庫采用MySQL存儲信息&#xff0…

單例模式與鎖(死鎖)

目錄 線程安全的單例模式 什么是單例模式 單例模式的特點 餓漢實現方式和懶漢實現方式 餓漢?式實現單例模式 懶漢?式實現單例模式 懶漢?式實現單例模式(線程安全版本) 單例式線程池 ThreadPool.hpp threadpool.cc 運行結果 線程安全和重?問題 常?鎖概念 死…

CSS標題下劃線動態進入和移開

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS動態效果</title><style>div .title…

軟件工程 期末復習

瀑布模型&#xff1a;計劃 螺旋模型&#xff1a;風險低 原型模型: 用戶反饋 噴泉模型:代碼復用 高內聚 低耦合&#xff1a;模塊內部功能緊密 模塊之間依賴程度小 高內聚&#xff1a;指的是一個模塊內部的功能應該緊密相關。換句話說&#xff0c;一個模塊應當只實現單一的功能…

鴻蒙 Stege模型 多模塊應用

模塊 一個鴻蒙應用可能包含一個或者多個功能模塊&#xff0c;在 DevEcoStudio 工程中可以創建對應的一個或多個 Module。Module 又分為 “Ability” 和 “Library”兩種類型&#xff0c;“Ability”類型的 Module 對應于編譯后的 HAP&#xff08;Harmony Ability Package&…

領域LLM九講——第4講 構建可測評、可優化的端到端商業AI Agent 系統

領域LLM九講——第4講 構建可測評、可優化的端到端商業AI Agent 系統 以 OpenAI Cookbook 的《receipt_inspection》示例為基礎&#xff0c;探討如何設計一個可測試、可優化的端到端 AI Agent 系統。整體流程分為三個階段&#xff1a; (1) 端到端 Agent 構建&#xff08;基線測…

MySQL體系架構解析(三):MySQL目錄與啟動配置全解析

MySQL中的目錄和文件 bin目錄 在 MySQL 的安裝目錄下有一個特別重要的 bin 目錄&#xff0c;這個目錄下存放著許多可執行文件。與其他系統的可執行文件類似&#xff0c;這些可執行文件都是與服務器和客戶端程序相關的。 啟動MySQL服務器程序 在 UNIX 系統中&#xff0c;用…

Linux線程與進程關系及底層實現

在操作系統中&#xff0c;線程切換相比進程切換更輕量級的關鍵原因之一是 緩存&#xff08;Cache&#xff09;的有效性&#xff0c;尤其是對 CPU 緩存&#xff08;如 L1/L2/L3&#xff09;和 TLB&#xff08;Translation Lookaside Buffer&#xff09;的影響。以下從緩存角度詳…

【論文閱讀30】Bi-LSTM(2024)

用于精確實時滑坡檢測的雙向LSTM模型&#xff1a;以印度梅加拉亞邦毛永格里姆為例的研究 IEEE Internet of Things Journal&#xff08;簡稱 IoT?J&#xff09;是一份 IEEE 自 2014 年起雙月刊發表的國際頂級學術期刊&#xff0c;專注于物聯網各領域的研究。 作者&#xff1a…

Java編程之原型模式

原型模式的定義 原型模式&#xff08;Prototype Pattern&#xff09;是一種創建型設計模式&#xff0c;通過復制已有對象來創建新對象&#xff0c;而非通過常規的手段的new關鍵字來實例化。適用于對象創建成本較高或需要動態配置的場景。 例如&#xff0c;在一個游戲開發中&am…