dw網(wǎng)站制作,廊坊百度快照優(yōu)化排名,網(wǎng)站建設(shè)方案情況匯報(bào),網(wǎng)站服務(wù)器托管協(xié)議目錄 1. 說(shuō)明2. 原理2.1 服務(wù)注冊(cè)2.2 服務(wù)發(fā)現(xiàn)2.3 負(fù)載均衡 3. Service的類型3.1 ClusterIP3.2 NodePort3.3 LoadBalancer3.4 ExternalName 4. 使用場(chǎng)景 1. 說(shuō)明
1.kubernetes中的service主要用于提供網(wǎng)絡(luò)服務(wù),并實(shí)現(xiàn)微服務(wù)架構(gòu)中的幾個(gè)核心功能:全自動(dòng)…
目錄
- 1. 說(shuō)明
- 2. 原理
- 2.1 服務(wù)注冊(cè)
- 2.2 服務(wù)發(fā)現(xiàn)
- 2.3 負(fù)載均衡
- 3. Service的類型
- 3.1 ClusterIP
- 3.2 NodePort
- 3.3 LoadBalancer
- 3.4 ExternalName
- 4. 使用場(chǎng)景
1. 說(shuō)明
- 1.kubernetes中的service主要用于提供網(wǎng)絡(luò)服務(wù),并實(shí)現(xiàn)微服務(wù)架構(gòu)中的幾個(gè)核心功能:全自動(dòng)的服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、服務(wù)負(fù)載均衡等。
- 2.Service在kubernetes中代表了一組Pod的邏輯集合,為Pod提供了一個(gè)統(tǒng)一的訪問(wèn)地址和端口。
- 3.通過(guò)service的定義,可以對(duì)客戶端應(yīng)用屏蔽后端Pod實(shí)例數(shù)量及Pod IP地址的變化。
- 4.service能夠?qū)蛻舳说恼?qǐng)求通過(guò)負(fù)載均衡策略轉(zhuǎn)發(fā)到后端Pod實(shí)例,為客戶端應(yīng)用提供一個(gè)穩(wěn)定的服務(wù)訪問(wèn)入口地址。
2. 原理
2.1 服務(wù)注冊(cè)
- 1.創(chuàng)建service時(shí),kubernetes會(huì)自動(dòng)創(chuàng)建與service關(guān)聯(lián)的Endpoints資源對(duì)象。
- 2.Endpoints對(duì)象用于存儲(chǔ)Service對(duì)應(yīng)的后端容器應(yīng)用訪問(wèn)地址列表,即后端Pod的“IP:Port”列表。
- 3.這是由Endpoints Controller完成的,它負(fù)責(zé)生成和維護(hù)所有Endpoints對(duì)象。
- 4.Endpoints Controller會(huì)持續(xù)監(jiān)聽(tīng)Service和對(duì)應(yīng)的Pod副本列表的變化,在Pod列表發(fā)生變化時(shí),實(shí)時(shí)更新對(duì)應(yīng)的Service的Endpoints對(duì)象。
2.2 服務(wù)發(fā)現(xiàn)
- 1.Kubernetes提供了兩種機(jī)制供客戶端應(yīng)用以固定的方式獲取后端服務(wù)的訪問(wèn)地址:環(huán)境變量方式和DNS方式。
- 2.客戶端Pod在創(chuàng)建時(shí),系統(tǒng)會(huì)自動(dòng)為其容器運(yùn)行環(huán)境注入集群中所有有效Service的信息。
- 3.同時(shí),能夠感知集群的DNS服務(wù)器(例如CoreDNS)會(huì)監(jiān)視Kubernetes API中的新Service,并為每個(gè)Service創(chuàng)建一組DNS記錄。
- 4.客戶端應(yīng)用可以通過(guò)這兩種方式發(fā)現(xiàn)需要訪問(wèn)的Service。
2.3 負(fù)載均衡
- 1.從Service虛擬IP到后端Pod的負(fù)載均衡機(jī)制,是由每個(gè)Node上的kube-proxy負(fù)責(zé)實(shí)現(xiàn)的。
- 2.kube-proxy可以通過(guò)iptables或IPVS模式來(lái)實(shí)現(xiàn)流量的轉(zhuǎn)發(fā)和負(fù)載均衡。
- 3.iptables模式使用Linux netfilter處理流量,無(wú)需在用戶空間和內(nèi)核空間之間切換,系統(tǒng)開銷較低。
- 4.而IPVS模式使用哈希表作為底層數(shù)據(jù)結(jié)構(gòu),在內(nèi)核空間中生效,因此比iptables模式重定向流量的延遲更低,同步代理規(guī)則時(shí)性能也更好。
3. Service的類型
3.1 ClusterIP
- 1.這是默認(rèn)的Service類型。
- 2.ClusterIP類型的Service僅在集群內(nèi)部可訪問(wèn),外部應(yīng)用無(wú)法直接訪問(wèn)。
- 3.創(chuàng)建Service時(shí),Kubernetes會(huì)為Service分配一個(gè)虛擬IP地址(ClusterIP),該IP地址僅在集群內(nèi)部可訪問(wèn)。
3.2 NodePort
- 1.NodePort類型的Service除了在集群內(nèi)部可訪問(wèn)之外,還可以通過(guò)節(jié)點(diǎn)的IP地址和NodePort端口號(hào)從外部訪問(wèn)。
- 2.創(chuàng)建Service時(shí),Kubernetes會(huì)為Service分配一個(gè)NodePort端口號(hào),該端口號(hào)在所有節(jié)點(diǎn)上都可用。
- 3.外部應(yīng)用可以通過(guò)節(jié)點(diǎn)的IP地址和NodePort端口號(hào)訪問(wèn)Service。
- 4.但這種方式會(huì)在集群內(nèi)每個(gè)節(jié)點(diǎn)上都占用一個(gè)端口,可能會(huì)浪費(fèi)資源。
3.3 LoadBalancer
- 1.LoadBalancer類型的Service在支持LoadBalancer的公有云環(huán)境中使用。
- 2.云提供商會(huì)自動(dòng)為這個(gè)Service配置一個(gè)負(fù)載均衡器,并將流量轉(zhuǎn)發(fā)到Service的NodePort上。
- 3.這種方式需要額外的成本,例如云服務(wù)商的負(fù)載均衡器費(fèi)用。
3.4 ExternalName
- 1.ExternalName類型的Service將Service的名稱映射到一個(gè)外部域名,使得集群內(nèi)部可以通過(guò)這個(gè)Service名稱來(lái)訪問(wèn)外部的域名。
4. 使用場(chǎng)景
- 1.內(nèi)部服務(wù)暴露:對(duì)于僅在集群內(nèi)部使用的服務(wù),可以使用ClusterIP類型的Service來(lái)暴露。
- 2.外部訪問(wèn)服務(wù):對(duì)于需要從外部訪問(wèn)的服務(wù),可以使用NodePort或LoadBalancer類型的Service。NodePort類型適用于小規(guī)模集群或測(cè)試環(huán)境,而LoadBalancer類型則適用于需要高可用性和可擴(kuò)展性的生產(chǎn)環(huán)境。
- 3.引入外部服務(wù):對(duì)于集群外部的服務(wù),可以使用ExternalName類型的Service將其引入到集群內(nèi)部來(lái)使用。