偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Kubernetes服務(wù)發(fā)現(xiàn)入門:如何高效管理服務(wù)?

開發(fā) 開發(fā)工具
愈發(fā)復(fù)雜的應(yīng)用程序正在依靠微服務(wù)來(lái)保持可擴(kuò)展性和提升效率。Kubernetes為微服務(wù)提供了完美的環(huán)境,并能夠讓其與Kubernetes的工具組件和功能兼容。當(dāng)應(yīng)用程序的每個(gè)部分放置在一個(gè)容器中,整個(gè)系統(tǒng)就會(huì)更具可伸縮性。

 愈發(fā)復(fù)雜的應(yīng)用程序正在依靠微服務(wù)來(lái)保持可擴(kuò)展性和提升效率。Kubernetes為微服務(wù)提供了完美的環(huán)境,并能夠讓其與Kubernetes的工具組件和功能兼容。當(dāng)應(yīng)用程序的每個(gè)部分放置在一個(gè)容器中,整個(gè)系統(tǒng)就會(huì)更具可伸縮性。

微服務(wù)和容器的運(yùn)作方式也適合當(dāng)下的CI/CD工作流程,即無(wú)需關(guān)閉整個(gè)系統(tǒng)進(jìn)行更新,因?yàn)榭梢苑謩e更新每個(gè)微服務(wù)(容器)。但是,這會(huì)使容器或pod的生命周期縮短,其IP地址會(huì)發(fā)生變化。

在應(yīng)用程序及其微服務(wù)的生命周期中,其中某些部分可能會(huì)出現(xiàn)錯(cuò)誤,無(wú)法運(yùn)行,進(jìn)而導(dǎo)致意外狀況,IP地址也很有可能發(fā)生變化。此時(shí),服務(wù)網(wǎng)格可以幫助應(yīng)用程序重新路由、提升安全性。

 

[[286575]]

 

動(dòng)態(tài)IP分配

在我們了解如何管理服務(wù)以及如何高效建立服務(wù)發(fā)現(xiàn)之前,我們必須了解服務(wù)發(fā)現(xiàn)所面臨的首要挑戰(zhàn):IP分配問題。具體而言,Kubernetes將IP地址動(dòng)態(tài)分配給Pod和服務(wù)的方式。

我們固然可以為單個(gè)Pod和服務(wù)定義IP地址,但這樣做會(huì)限制Kubernetes環(huán)境的可伸縮性。在默認(rèn)情況下,環(huán)境在每次重新啟動(dòng)集群、pod或服務(wù)時(shí),任意資源都會(huì)獲得新的IP地址,因此我們只能對(duì)服務(wù)使用唯一的名稱。

為了克服這一問題,你可以使用兩種方法。其一,查看服務(wù)的環(huán)境變量。與Docker允許容器相互通信的方式類似,Kubernetes允許你掃描注入到容器中的環(huán)境變量。

如果你有在多個(gè)端口上運(yùn)行的服務(wù),你可以運(yùn)行kubectl exec memcached-rm58b env命令,然后對(duì)服務(wù)名稱進(jìn)行快速grep操作,之后將會(huì)顯示分配給該服務(wù)的可用IP地址和端口。不過,這并不是管理服務(wù)發(fā)現(xiàn)的最有效方法。因?yàn)?,這種方法中依賴的服務(wù)必須在 pod 啟動(dòng)之前就存在,不然是不會(huì)出現(xiàn)在環(huán)境變量中的。

Kube-DNS救場(chǎng)

長(zhǎng)遠(yuǎn)來(lái)看,以下闡述的第二種方法通常被認(rèn)為效率更高,這得益于Kubernetes的插件Kube-DNS。我們先來(lái)了解什么是Kube-DNS。顧名思義,Kube-DNS是充當(dāng)內(nèi)部DNS解析器的附加組件。它是一個(gè)數(shù)據(jù)庫(kù),其中包含用于查找的鍵值對(duì)。鍵是Kubernetes服務(wù)的名稱,值是服務(wù)所運(yùn)行的IP地址。

Kube-DNS僅依賴命名空間,無(wú)需以其他方式配置Pod和服務(wù),甚至無(wú)需修改集群、Pod和服務(wù)的配置文件即可進(jìn)行基于DNS的服務(wù)發(fā)現(xiàn)。

Kube-DNS同時(shí)也支持高級(jí)DNS查詢以及DNS策略。例如,你可以對(duì)每個(gè)Pod進(jìn)行配置,將其配置為遵循與其運(yùn)行的節(jié)點(diǎn)不同的DNS屬性。這意味著你可以使用私有DNS空間來(lái)自定義pod之間如何進(jìn)行通信。

這一方法還能更進(jìn)一步,在每個(gè)pod的基礎(chǔ)上配置DNS策略。你需要做的就是將節(jié)點(diǎn)DNS策略設(shè)置為“None”,然后手動(dòng)配置每個(gè)Pod以滿足你的特定需求。

Label和Selectors

  1. ublic class AtomicProblem { 
  2.    
  3.   private static Logger logger = LoggerFactory.getLogger(AtomicProblem.class); 
  4.    
  5.   public static final int THREAD_COUNT = 10; 
  6.    
  7.   public static void main(String[ www.yongshiyule178.com] args) throws Exception { 
  8.    
  9.   BankAccount sharedAccount = new BankAccount("account-csx",0.00); 
  10.    
  11.   ArrayList<Thread> threads = new ArrayList<www.zhenghongyule.com>(); 
  12.    
  13.   for (int i = 0; i www.javachenglei.com< THREAD_COUNT; i++) { 
  14.    
  15.   Thread thread = new Thread(new Runnable(www.dajuhezc.cn ) { 
  16.    
  17.   @Override 
  18.    
  19.   public void run(www.huizhonggjzc.cn ) { 
  20.    
  21.   for (int j = 0; j < 1000 ;www.baihuajtuan.cn j++) { 
  22.    
  23.   sharedAccount.deposit(10.00); 
  24.  
  25.   public double deposit(double amount){ 
  26.    
  27.   balance = balance + amount; 
  28.    
  29.   return balance; 
  30.  
  31.   public double withdraw(double amount){ 
  32.    
  33.   balance = balance - amount; 
  34.    
  35.   return balance; 
  36.    
  37.   public String getAccountName() { 
  38.    
  39.   return accountName; 
  40.    
  41.   public void setAccountName(String accountName) { 
  42.    
  43.   this.accountName = accountName; 

正如前文所述,你可以使用參數(shù)來(lái)進(jìn)一步影響Pod之間和服務(wù)之間的通信方式。Kubernetes服務(wù)發(fā)現(xiàn)支持對(duì)高級(jí)控件使用label和selector,特別是在管理復(fù)雜集群時(shí),label尤為方便。你可以將label分配給組件和容器,以便于識(shí)別。

Kubernetes處理label和selector的方式使得這些參數(shù)更易于使用。本質(zhì)上,它們是添加到元數(shù)據(jù)中的簡(jiǎn)單鍵值參數(shù)。也就是說(shuō),它們實(shí)際上并不會(huì)影響系統(tǒng)或環(huán)境中的其他部分,你可以在復(fù)雜的環(huán)境中跨pod和服務(wù)(甚至跨節(jié)點(diǎn))自由使用label和selector。

接下來(lái),我們要使用副本控制器。同樣,顧名思義,它是一個(gè)可以使Kubernetes的系統(tǒng)具有高可用性和可伸縮性的工具。你可以使用副本控制器來(lái)創(chuàng)建和管理pod副本并且維護(hù)高可用。同時(shí),你也可以輕松地一次性刪除pod及其副本。

Service Mesh和高度彈性伸縮系統(tǒng)

要完成設(shè)置,我們需要使用與現(xiàn)有基礎(chǔ)架構(gòu)和平臺(tái)相關(guān)的高級(jí)服務(wù)發(fā)現(xiàn)方法。AWS Cloud Map是一個(gè)十分有意思的例子。AWS環(huán)境中的應(yīng)用程序資源可以擁有唯一的名稱,并且那些資源會(huì)被Cloud Map自動(dòng)映射。它們注冊(cè)完成后,服務(wù)會(huì)自動(dòng)變?yōu)榭砂l(fā)現(xiàn)的,并且在啟動(dòng)Pod或服務(wù)后立即進(jìn)行注冊(cè)過程。

現(xiàn)在有一個(gè)新的方法,通過使用服務(wù)網(wǎng)格讓管理微服務(wù)的復(fù)雜陣列變得容易。服務(wù)網(wǎng)格標(biāo)準(zhǔn)化了服務(wù)和Pod的通信方式。如果你要?jiǎng)?chuàng)建一個(gè)高可用的系統(tǒng),那么在環(huán)境中使用服務(wù)網(wǎng)格來(lái)維護(hù)Pod的可見性是一個(gè)完美的解決方案。

但是,如果你的環(huán)境在AWS上,則可以以AWS App Mesh的形式利用其服務(wù)網(wǎng)格功能。它會(huì)自動(dòng)處理所有事情,包括流量路由、流量均衡、調(diào)用以及使用API調(diào)用的circuit breaking。所有微服務(wù)都能夠啟用API Mesh,以簡(jiǎn)化管理。由于此工具是Amazon生態(tài)的一部分,因此它會(huì)自動(dòng)和Amazon EKS、IAM等其他工具一起使用。

Kubernetes服務(wù)發(fā)現(xiàn)使得容器平臺(tái)具有強(qiáng)大功能以及靈活性,服務(wù)網(wǎng)格等方法無(wú)疑通過標(biāo)準(zhǔn)化使Kubernetes服務(wù)發(fā)現(xiàn)更加強(qiáng)大。只要服務(wù)在運(yùn)行,就可以使正確的API調(diào)用在每個(gè)Pod之前來(lái)回傳遞數(shù)據(jù)而不會(huì)中斷。

責(zé)任編輯:華軒 來(lái)源: 博客園
相關(guān)推薦

2021-09-07 09:18:18

Kubernetes負(fù)載均衡服務(wù)發(fā)現(xiàn)

2023-11-29 16:21:30

Kubernetes服務(wù)注冊(cè)

2023-09-07 23:25:34

微服務(wù)服務(wù)發(fā)現(xiàn)

2023-04-14 14:31:52

Kubernetes服務(wù)

2023-04-03 07:17:34

CP集群AP

2011-08-30 10:44:52

遠(yuǎn)程服務(wù)器服務(wù)器管理工具服務(wù)器虛擬化

2009-05-25 17:48:16

IT服務(wù)管理

2015-04-23 09:14:08

天璣科技服務(wù)型企業(yè)客戶關(guān)系管理

2022-06-17 12:05:25

微服務(wù)注冊(cè)

2022-08-14 07:04:44

微服務(wù)架構(gòu)設(shè)計(jì)模式

2010-05-20 18:27:10

IIS服務(wù)器

2022-09-23 09:28:11

KubeSealKubernetesSecret

2022-03-28 11:27:17

Kubernetes運(yùn)維服務(wù)發(fā)現(xiàn)

2010-12-28 17:13:32

管理服務(wù)器

2021-03-17 07:29:15

Systemctl 管理Linux

2022-04-26 05:36:42

服務(wù)治理模式

2009-01-05 18:44:48

服務(wù)器管理Windows

2025-01-20 00:10:00

Go語(yǔ)言Kratos

2018-02-02 15:14:15

2021-09-03 08:50:50

Dubbo服務(wù)引用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)