最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kubernetes Service(SVC)網(wǎng)絡(luò)使用及說明

 更新時間:2026年01月19日 09:50:03   作者:XMYX-0  
Kubernetes通過Service資源解決了Pod動態(tài)IP的問題,提供穩(wěn)定的訪問入口,ClusterIP、NodePort和LoadBalancer是Service的三種類型,分別適用于內(nèi)部通信、簡單外部訪問和云環(huán)境,Service通過iptables或IPVS進(jìn)行負(fù)載均衡,并結(jié)合Ingress可實(shí)現(xiàn)更強(qiáng)大的流量管理

Kubernetes Service(SVC)網(wǎng)絡(luò)

在 Kubernetes(k8s)集群中,Pod 是最小的可部署單元,但 Pod 的生命周期是短暫的,IP 也是動態(tài)分配的。這種特性導(dǎo)致 Pod 之間的網(wǎng)絡(luò)通信變得復(fù)雜。

為了解決這個問題,Kubernetes 引入了 Service(SVC) 資源,它充當(dāng)一組 Pod 的穩(wěn)定訪問入口,使得集群內(nèi)部或外部的訪問更加高效和穩(wěn)定。

本文將深入探討 Kubernetes Service 的網(wǎng)絡(luò)機(jī)制、不同類型及其應(yīng)用場景。

為什么需要 Service?

Kubernetes 中 Pod 可能會被頻繁銷毀和重建,每次重新創(chuàng)建時,其 IP 地址都會改變。

例如,一個微服務(wù)架構(gòu)的 Web 應(yīng)用,frontend 需要訪問 backend,但 backend 的 Pod IP 是動態(tài)變化的,frontend 無法始終知道 backend 的最新 IP。

Service 解決了這個問題,提供了一個 穩(wěn)定的訪問方式

  • Service 具有 固定的 Cluster IP,不會因 Pod 變化而變化。
  • Service 通過 標(biāo)簽選擇器(Label Selector) 發(fā)現(xiàn)匹配的 Pod,并自動負(fù)載均衡。
  • Service 還可以暴露到集群外部,讓外部應(yīng)用訪問 Kubernetes 內(nèi)部的服務(wù)。

Kubernetes Service 主要組成部分

一個 Service 由以下關(guān)鍵部分組成:

組件作用
selector通過 Label 選擇匹配的 Pod
clusterIPService 的內(nèi)部 IP 地址(默認(rèn)自動分配)
ports定義 Service 暴露的端口
typeService 的類型,決定了其訪問方式
endpoints記錄了與 Service 關(guān)聯(lián)的 Pod 的 IP 和端口

Kubernetes Service 類型

類型的對比表格

Service 類型作用訪問方式適用場景
ClusterIP(默認(rèn))僅在 集群內(nèi)部 訪問,提供穩(wěn)定的服務(wù)發(fā)現(xiàn)http://my-service.default.svc.cluster.local集群內(nèi)部通信(如微服務(wù)間調(diào)用)
NodePort在每個 Node 上開放一個固定端口,供外部訪問http://<NodeIP>:<NodePort>小規(guī)模外部訪問,如開發(fā)測試
LoadBalancer在云環(huán)境中創(chuàng)建外部負(fù)載均衡器,自動分配外部 IPhttp://<External-IP>:<Port>生產(chǎn)環(huán)境對外提供服務(wù)
ExternalName代理 Kubernetes 內(nèi)部流量到外部域名http://my-database.default.svc.cluster.local訪問外部數(shù)據(jù)庫或 API

ClusterIP(默認(rèn)類型)

  • 作用:只在 集群內(nèi)部 訪問,提供穩(wěn)定的內(nèi)部服務(wù)發(fā)現(xiàn)。
  • 適用場景:集群內(nèi)部服務(wù)通信,例如 backend 訪問 database。

示例 YAML

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP
  • port: 80:Service 暴露的端口。
  • targetPort: 8080:Pod 內(nèi)部監(jiān)聽的端口。

訪問方式

curl http://my-service.default.svc.cluster.local

NodePort

  • 作用:通過每個 Node 的 固定端口30000-32767)訪問,適用于集群外部訪問。
  • 適用場景:用于 臨時外部訪問,例如開發(fā)環(huán)境調(diào)試或小規(guī)模部署。

示例 YAML

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30080
  type: NodePort

訪問方式

curl http://<NodeIP>:30080

LoadBalancer

  • 作用:在云環(huán)境(如 AWS、GCP、Azure)中,自動創(chuàng)建外部負(fù)載均衡器,適用于 生產(chǎn)環(huán)境。
  • 適用場景:用于對外暴露的服務(wù),如 Web 服務(wù)器、API 服務(wù)器。

示例 YAML

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

訪問方式:獲取 LoadBalancer 分配的外部 IP:

kubectl get svc my-service

ExternalName

  • 作用:用于將 Kubernetes 內(nèi)部流量 代理到外部域名,類似于 DNS 記錄。
  • 適用場景:例如將 my-database Service 映射到外部 db.example.com

示例 YAML

apiVersion: v1
kind: Service
metadata:
  name: my-database
spec:
  type: ExternalName
  externalName: db.example.com

訪問方式

curl http://my-database.default.svc.cluster.local

Service 的解析與訪問機(jī)制

Service DNS 解析

Kubernetes 內(nèi)置了 DNS 解析服務(wù),支持以下格式的域名訪問:

<service-name>.<namespace>.svc.cluster.local

例如:

my-service.default.svc.cluster.local

此 DNS 解析由 CoreDNS 組件管理,Pod 內(nèi)部可以直接使用 curl my-service 訪問。

Service 負(fù)載均衡原理

當(dāng)請求發(fā)送到 Service 時,Kubernetes 通過 iptables 或 IPVS 進(jìn)行負(fù)載均衡:

iptables(默認(rèn))

  • 創(chuàng)建 NAT 規(guī)則,將請求隨機(jī)轉(zhuǎn)發(fā)到某個 Pod。
  • 適用于 小規(guī)模集群,性能較好。

IPVS(高性能)

  • 采用 哈希表 管理規(guī)則,性能比 iptables 更優(yōu)。
  • 適用于 大規(guī)模集群,如萬級 Pod 部署。

要啟用 IPVS:

kubectl edit configmap -n kube-system kube-proxy

修改 mode: ipvs,然后重啟 kube-proxy。

Service 與 Ingress 的區(qū)別

特性ServiceIngress
作用連接 Pod 之間的網(wǎng)絡(luò)連接外部流量與內(nèi)部 Service
訪問方式ClusterIP, NodePort, LoadBalancer通過 Ingress Controller 代理
負(fù)載均衡Kubernetes 自帶需要 Ingress Controller
適用場景內(nèi)部通信,或?qū)ν夂唵伪┞?/td>復(fù)雜路由、SSL 終結(jié)

總結(jié)

  • Service 解決了 Pod 動態(tài) IP 的問題,提供穩(wěn)定的訪問入口。
  • ClusterIP 適用于內(nèi)部通信,NodePort 適用于簡單外部訪問,LoadBalancer 適用于云環(huán)境
  • Service 通過 iptables 或 IPVS 進(jìn)行負(fù)載均衡。
  • Service 結(jié)合 Ingress 可實(shí)現(xiàn)更強(qiáng)大的流量管理

Service 是 Kubernetes 網(wǎng)絡(luò)的核心,理解其工作機(jī)制對于搭建可靠的微服務(wù)架構(gòu)至關(guān)重要!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解推薦使用systemd?timer替代cronjob

    詳解推薦使用systemd?timer替代cronjob

    這篇文章主要為大家介紹了推薦使用systemd?timer替代0cronjob原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • helmfile聲明式部署Helm?Chart使用詳解

    helmfile聲明式部署Helm?Chart使用詳解

    這篇文章主要為大家介紹了helmfile聲明式部署Helm?Chart使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • 云原生技術(shù)持久化存儲PV與PVC

    云原生技術(shù)持久化存儲PV與PVC

    這篇文章主要介紹了云原生技術(shù)持久化存儲PV與PVC
    2022-03-03
  • Kubernetes中Pod容器的資源限制和探針配置方式

    Kubernetes中Pod容器的資源限制和探針配置方式

    這篇文章主要介紹了Kubernetes中Pod容器的資源限制和探針配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • kubeadm安裝k8s高可用集群實(shí)踐

    kubeadm安裝k8s高可用集群實(shí)踐

    文章介紹了如何規(guī)劃和部署一個Kubernetes高可用集群,包括環(huán)境準(zhǔn)備、節(jié)點(diǎn)配置、Docker安裝、Kubernetes組件安裝和配置、高可用組件部署以及私有倉庫Harbor的安裝
    2026-03-03
  • keepalived?nopreempt的應(yīng)用場景及說明

    keepalived?nopreempt的應(yīng)用場景及說明

    文章詳細(xì)介紹了keepalived高可用模式下`nopreempt`非搶占模式的應(yīng)用場景,并探討了不同配置下的VIP故障轉(zhuǎn)移行為,同時,文章還解釋了`notify`腳本的作用,包括觸發(fā)時機(jī)和典型用途
    2026-01-01
  • k8s admin用戶生成token方式

    k8s admin用戶生成token方式

    用戶使用Kubernetes 1.28創(chuàng)建admin命名空間并部署,通過ClusterRoleBinding為jenkins用戶授權(quán)集群級權(quán)限,生成并獲取其token,最后檢查token是否存在及生效情況
    2025-09-09
  • K8S中若要掛載其他命名空間中的 Secret操作方法

    K8S中若要掛載其他命名空間中的 Secret操作方法

    在Kubernetes中,通過創(chuàng)建ServiceAccount和RoleBinding,可以實(shí)現(xiàn)一個命名空間中的Pod掛載另一個命名空間中的Secret,以下是具體步驟和示例代碼,包括創(chuàng)建ServiceAccount、Role和RoleBinding,以及在Pod中使用這些資源掛載Secret,感興趣的朋友一起看看吧
    2025-03-03
  • Kubernetes中使用PersistentVolume掛載云盤方式

    Kubernetes中使用PersistentVolume掛載云盤方式

    這篇文章主要介紹了Kubernetes中使用PersistentVolume掛載云盤方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Rainbond調(diào)用Vue?React項目的后端接口

    Rainbond調(diào)用Vue?React項目的后端接口

    這篇文章主要為大家介紹了Rainbond調(diào)用Vue?React項目的后端接口問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評論

吉安县| 额尔古纳市| 绿春县| 石河子市| 香港| 萍乡市| 象山县| 周宁县| 镇原县| 巴林左旗| 泉州市| 汝阳县| 彰化市| 淅川县| 海晏县| 海原县| 永寿县| 剑阁县| 岑溪市| 南阳市| 高青县| 竹山县| 临安市| 昔阳县| 阜城县| 海兴县| 舟曲县| 汉川市| 太谷县| 博乐市| 洛浦县| 延津县| 友谊县| 平利县| 邵东县| 广昌县| 荃湾区| 桃江县| 大埔区| 泰州市| 浦城县|