国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(七)K8S核心資源Service

這篇具有很好參考價值的文章主要介紹了(七)K8S核心資源Service。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.什么是service服務(wù)

Service

Kubernetes(K8s)中的Service是一種抽象,用于定義一組Pod的訪問方式和網(wǎng)絡(luò)規(guī)則。它提供了一個穩(wěn)定的網(wǎng)絡(luò)終結(jié)點,使得應(yīng)用程序能夠通過Service名稱來訪問后端的Pod實例。

Service為一組具有相同功能的Pod提供了一個統(tǒng)一的入口,隱藏了Pod背后的具體細(xì)節(jié)。通過Service,應(yīng)用程序可以使用DNS名稱或Cluster IP來訪問后端Pod,而不需要直接暴露Pod的IP地址。這樣,當(dāng)Pod的IP地址發(fā)生變化時,應(yīng)用程序仍然可以通過Service來訪問后端的Pod。

Service還支持負(fù)載均衡,可以將請求均勻地分發(fā)到后端的多個Pod實例,從而實現(xiàn)高可用和水平擴(kuò)展。它可以根據(jù)不同的負(fù)載均衡策略(如輪詢、IP哈希等)將請求路由到不同的Pod。

Kubernetes中有多種類型的Service,包括ClusterIP、NodePort和LoadBalancer。每種類型都提供了不同的訪問方式和網(wǎng)絡(luò)配置,以滿足不同的應(yīng)用需求。

總之,Kubernetes的Service是一種抽象層,用于定義和管理應(yīng)用程序的網(wǎng)絡(luò)訪問方式,并提供負(fù)載均衡和穩(wěn)定的網(wǎng)絡(luò)終結(jié)點。它是構(gòu)建在Pod之上的一種網(wǎng)絡(luò)抽象,為應(yīng)用程序提供了方便的訪問和可擴(kuò)展性。

Service分類

  • ClusterIP 是默認(rèn)類型的Service,它將Service暴露在集群內(nèi)部的虛擬IP上。其他Pod或Service可以通過該虛擬IP和指定的端口與Service進(jìn)行通信。ClusterIP類型的Service僅在集群內(nèi)部可訪問,對外部網(wǎng)絡(luò)是不可見的。
  • NodePort 對外訪問應(yīng)用使用,在ClusterIP基礎(chǔ)上為Service在每臺機(jī)器上綁定一個端口,就可以通過: ip+NodePort來訪問該服務(wù)
  • LoadBalancer(付費方案) 使在NodePort的基礎(chǔ)上,借助公有云創(chuàng)建一個外部負(fù)載均衡器,并將請求轉(zhuǎn)發(fā)到NodePort
    可以實現(xiàn)集群外部訪問服務(wù)的另外一種解決方案,不過并不是所有的k8s集群都會支持,大多是在公有云托管集群中會支持該類型
  • ExternalName(很少使用)把集群外部的服務(wù)引入到集群內(nèi)部來,在集群內(nèi)部直接使用。沒有任何類型代理被創(chuàng)建,這只有 Kubernetes 1.7或更高版本的kube-dns才支持。

Service和pod的關(guān)系

service和pod之間是通過 selector.app進(jìn)行關(guān)聯(lián)的

yaml示例:

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  name: svc
spec:
  ports:
  - port: 80  # service服務(wù)端口
    protocol: TCP
    targetPort: 80 # pod端口,常規(guī)和容器內(nèi)部端口一致
  selector: # 標(biāo)簽選擇器,確定當(dāng)前service代理控制哪些pod
    app: nginx-pod
status:
  loadBalancer: {}

2.多種port端口區(qū)分

關(guān)于K8S中端口的概念區(qū)分

  • port 是service端口,即k8s中服務(wù)之間的訪問端口 ,clusterIP:port 是提供給集群內(nèi)部客戶訪問service的入口
  • nodePort 容器所在node節(jié)點的端口,通過nodeport類型的service暴露給集群節(jié)點,外部可以訪問的端口
  • targetPort 是pod的端口 ,從port和nodePort來的流量經(jīng)過kube-proxy流入到后端pod的targetPort上,最后進(jìn)入容器。
  • containerPort 是pod內(nèi)部容器的端口,targetPort映射到containerPort。

總結(jié):

  • 4種端口作用不一樣,port和nodePort都是service的端口
  • port暴露給集群內(nèi)客戶訪問服務(wù),nodePort暴露給集群外客戶訪問服務(wù)
  • 這兩個端口到來的數(shù)據(jù)都需要經(jīng)過反向代理kube-proxy流入后端pod的targetPod,從而到達(dá)pod中的容器

yaml示例;

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: dev
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.20
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80 #容器端口,不指定則為默認(rèn)
---
apiVersion: apps/v1
kind: Service
metadata:
  name: nginx
spec:
  type: NodePort # 有配置NodePort,外部可訪問k8s中的服務(wù) ,
  ports:
  - name: nginx
    port: 80  # 服務(wù)service的訪問端口
    protocol: TCP
    targetPort: 80  # pod端口,映射到容器端口
    nodePort: 30015  # NodePort,通過nodeport類型的service暴露給集群外部訪問
  selector:
    app: nginx

3.K8S服務(wù)Service的ClusterIP

在Kubernetes中使用ClusterIP類型的Service非常簡單。你可以按照以下步驟進(jìn)行操作:

創(chuàng)建和使用方式:

1.創(chuàng)建一個Service的定義文件(YAML格式),指定Service的名稱、選擇器、端口等信息。以下是一個示例

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - name: http
      port: 80
      targetPort: 8080

2.使用kubectl命令創(chuàng)建Service:

kubectl apply -f service-definition.yaml

3.等待Service創(chuàng)建成功。你可以使用以下命令來檢查Service的狀態(tài):

kubectl get service my-service

通過Service的ClusterIP來訪問相關(guān)的Pod。在集群內(nèi)部,你可以使用Service的ClusterIP作為訪問目標(biāo),而不需要直接暴露Pod的IP地址。
例如,在同一命名空間內(nèi)的Pod中,你可以使用Service的ClusterIP來訪問其他Pod,如下所示:

curl <cluster-ip>:<port>

請將<cluster-ip>和<port>替換為實際的Service的ClusterIP和端口。
注意:ClusterIP類型的Service默認(rèn)只在集群內(nèi)部可用,無法從集群外部訪問。如果你需要從集群外部訪問Service,可以考慮使用其他類型的Service,如NodePort或LoadBalancer。

4.K8S服務(wù)Service的NodePort和EndPoint

NodePort

特點:

NodePort是Kubernetes中一種類型的Service,它允許通過集群節(jié)點的特定端口將流量轉(zhuǎn)發(fā)到Service中的Pod。

1.NodePort是Service的一種類型,它公開了一個固定的端口(NodePort),并將流量轉(zhuǎn)發(fā)到Service中定義的端口(TargetPort)。

2.當(dāng)創(chuàng)建一個NodePort類型的Service時,Kubernetes會為每個節(jié)點分配一個隨機(jī)的端口號(30000-32767范圍),并將此端口映射到Service的TargetPort。

3.NodePort類型的Service可以從集群外部訪問。通過訪問集群的任何節(jié)點的IP地址和NodePort端口,可以將流量轉(zhuǎn)發(fā)到Service中的Pod。

創(chuàng)建和使用方式:

4.創(chuàng)建NodePort類型的Service的示例定義文件如下:

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

上述示例中的nodePort字段指定了NodePort的端口號為30080。

5.使用kubectl命令創(chuàng)建NodePort類型的Service:

kubectl apply -f service-definition.yaml

6.從集群外部訪問NodePort類型的Service時,可以使用任何節(jié)點的IP地址和指定的NodePort端口。例如:

curl <node-ip>:<node-port>

請注意,NodePort類型的Service通常用于測試或開發(fā)環(huán)境,并不適合在生產(chǎn)環(huán)境中直接使用。在生產(chǎn)環(huán)境中,建議使用LoadBalancer類型的Service或使用Ingress控制器來實現(xiàn)更靈活和可靠的流量管理。

Endpoint(ep)

概述:

1.是k8s中的一個資源對象,存儲在etcd(存儲數(shù)據(jù)庫)中,記錄service對應(yīng)的所有pod的訪問地址
2.里面有個Endpoints列表,就是當(dāng)前service可以負(fù)載到的pod服務(wù)入口
3.service和pod之間的通信是通過endpoint實現(xiàn)的
4.查看endpoint列表 kubectl get ep svc-nodeport-nginx1 -n dev -o wide

kubernetes提供了兩種負(fù)載均衡策略

  • Round Robin(輪詢):在輪詢負(fù)載均衡策略下,每個請求按照順序依次分發(fā)到后端的Pod。當(dāng)有多個后端Pod時,每個請求會按照輪詢的方式依次發(fā)送到不同的Pod上,確保每個Pod都能平均地處理請求。

  • Session Affinity(會話親和):在會話親和負(fù)載均衡策略下,Kubernetes會根據(jù)客戶端的源IP地址將一段時間內(nèi)的請求路由到同一個后端Pod上。這樣做的目的是為了保持與同一客戶端的會話連續(xù)性,確保客戶端在同一個Pod上處理的請求都屬于同一個會話。

這兩種負(fù)載均衡策略可以在Service的配置中進(jìn)行指定。對于Round Robin策略,可以將Service的.spec.sessionAffinity字段設(shè)置為None(默認(rèn)值),表示不啟用會話親和;對于Session Affinity策略,可以將.spec.sessionAffinity字段設(shè)置為ClientIP,表示根據(jù)客戶端的源IP地址進(jìn)行會話親和。文章來源地址http://www.zghlxwxcb.cn/news/detail-460009.html

到了這里,關(guān)于(七)K8S核心資源Service的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • k8s&service服務(wù)發(fā)現(xiàn)

    k8s&service服務(wù)發(fā)現(xiàn)

    Service的功能::::::::::::::::::::: 服務(wù)發(fā)現(xiàn):發(fā)現(xiàn)pod的變化,宕機(jī)的不轉(zhuǎn)發(fā) 對外發(fā)布:讓外部訪問到內(nèi)部,穩(wěn)定的對外映射一個端口號nodeport Service有兩個ip,第一個是service內(nèi)部訪問用的 一個是向外提供服務(wù)的clusterip 定位dns,用dns解析? 實例文件:

    2024年02月03日
    瀏覽(50)
  • K8S | Service服務(wù)發(fā)現(xiàn)

    K8S | Service服務(wù)發(fā)現(xiàn)

    服務(wù)發(fā)現(xiàn)與負(fù)載均衡。 在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會開放:路由網(wǎng)關(guān)、注冊中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問; 對于測試「Tes」環(huán)境或者生產(chǎn)「Pro」環(huán)境,出于安全或者環(huán)境隔離性來考慮,在正常情況下只會開放

    2024年02月14日
    瀏覽(20)
  • k8s Service服務(wù)詳解

    k8s Service服務(wù)詳解

    k8s中Service定義了這樣一種抽象:一個pod的邏輯分組,一種可以訪問他們的策略—通常稱為微服務(wù)。這一組pod能夠被Service訪問到,通常是通過Label Selector Service能夠提供負(fù)載均衡的能力,但是在使用上有以下限制: 只提供4層負(fù)載均衡能力,而沒有7層功能,但有時我們可能需要

    2024年02月13日
    瀏覽(24)
  • Kubernetes(k8s)服務(wù)service:service的發(fā)現(xiàn)和service的發(fā)布

    目錄 一.系統(tǒng)環(huán)境 二.前言 三.Kubernetes service簡介 四.使用hostPort向外界暴露應(yīng)用程序 4.1 創(chuàng)建deploy 4.2 使用hostPort向外界暴露pod的端口 五.使用service服務(wù)向外界暴露應(yīng)用程序 5.1 使用service服務(wù)向外界暴露pod 5.1.1 創(chuàng)建service服務(wù) 5.1.2 測試svc的負(fù)載均衡 六.service服務(wù)的發(fā)現(xiàn) 6.1 使用

    2024年02月08日
    瀏覽(21)
  • K8S之服務(wù)Service(十三)

    K8S之服務(wù)Service(十三)

    ?二,Pod與Service的關(guān)系 Service通過標(biāo)簽關(guān)聯(lián)一組Pod Service為一組Pod提供負(fù)載均衡能力 ?三,定義與創(chuàng)建 創(chuàng)建service: kubectl apply -f service.yaml 查看service: kubectl get service ?四,服務(wù)類型 ? ClusterIP:集群內(nèi)部使用 ? NodePort:對外暴露應(yīng)用 ? LoadBalancer:對外暴露應(yīng)用,適用公有云

    2024年02月08日
    瀏覽(24)
  • 云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)

    云原生-k8s核心概念(pod,deploy,service,ingress,configmap,volume)

    Gitee-k8s學(xué)習(xí) 云原生實戰(zhàn)-kubernetes核心實戰(zhàn) Namespace是kubernetes系統(tǒng)中的一種非常重要資源,它的主要作用是用來實現(xiàn)多套環(huán)境的資源隔離或者多租戶的資源隔離 Pod可以認(rèn)為是容器的封裝,一個Pod中可以存在一個或者多個容器。 kubernetes很少直接控制Pod,一般都是通過Pod控制器來

    2024年02月03日
    瀏覽(165)
  • 持續(xù)集成部署-k8s-服務(wù)發(fā)現(xiàn)-Service

    在K8s中, Service 是一種可以暴露一個或多個 Pod 的穩(wěn)定的網(wǎng)絡(luò)終點,從而形成邏輯上的應(yīng)用服務(wù)單元,為服務(wù)發(fā)現(xiàn)、負(fù)載均衡、容錯等提供了基礎(chǔ)設(shè)施支持。 Service 的主要作用包括以下幾個方面: 1. 實現(xiàn)內(nèi)部服務(wù)發(fā)現(xiàn) :在K8s中,往往會有多個 Pod 運行同一種應(yīng)用服務(wù), Servi

    2024年02月08日
    瀏覽(20)
  • k8s-服務(wù)發(fā)現(xiàn)service和ingress

    k8s-服務(wù)發(fā)現(xiàn)service和ingress

    回到目錄 service用于集群內(nèi)部應(yīng)用的網(wǎng)絡(luò)調(diào)用,處理東西流量 ingress用于集群外部用戶訪問內(nèi)部服務(wù),處理南北流量 kubernetes集群中有三層網(wǎng)絡(luò),一類是真實存在的,例如Node Network、Pod Network,提供真實IP地址;一類是虛擬的,例如Cluster Network或Service Network,提供虛擬IP地址,不會

    2024年02月14日
    瀏覽(19)
  • k8s的service資源類型有ClusterIP、Nodeport、ExternalName、LoadBalancer、Headless(None)

    k8s的service資源類型有ClusterIP、Nodeport、ExternalName、LoadBalancer、Headless(None)

    ClusterIP 是在所有節(jié)點內(nèi)生成一個虛擬IP,為一組pod提供統(tǒng)一的接入點,當(dāng)service存在時,它的IP地址和端口不會發(fā)生改變,客戶端通過service的ip和端口建立連接,由service將連接路由到該服務(wù)的任意一個后端pod上,通過這種方式,客戶端不需要知道每個pod的具體ip,pod可以隨時移

    2024年02月11日
    瀏覽(19)
  • k8s服務(wù)發(fā)現(xiàn)之第一彈Service概述

    Kubernetes 中 Pod 是隨時可以消亡的(節(jié)點故障、容器內(nèi)應(yīng)用程序錯誤等原因)。如果使用 Deployment 運行您的應(yīng)用程序,Deployment 將會在 Pod 消亡后再創(chuàng)建一個新的 Pod 以維持所需要的副本數(shù)。每一個 Pod 有自己的 IP 地址,然而,對于 Deployment 而言,對應(yīng) Pod 集合是動態(tài)變化的。

    2024年02月12日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包