成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes服務發現入門:如何高效管理服務?

開發 開發工具
愈發復雜的應用程序正在依靠微服務來保持可擴展性和提升效率。Kubernetes為微服務提供了完美的環境,并能夠讓其與Kubernetes的工具組件和功能兼容。當應用程序的每個部分放置在一個容器中,整個系統就會更具可伸縮性。

 愈發復雜的應用程序正在依靠微服務來保持可擴展性和提升效率。Kubernetes為微服務提供了完美的環境,并能夠讓其與Kubernetes的工具組件和功能兼容。當應用程序的每個部分放置在一個容器中,整個系統就會更具可伸縮性。

微服務和容器的運作方式也適合當下的CI/CD工作流程,即無需關閉整個系統進行更新,因為可以分別更新每個微服務(容器)。但是,這會使容器或pod的生命周期縮短,其IP地址會發生變化。

在應用程序及其微服務的生命周期中,其中某些部分可能會出現錯誤,無法運行,進而導致意外狀況,IP地址也很有可能發生變化。此時,服務網格可以幫助應用程序重新路由、提升安全性。

 

[[286575]]

 

動態IP分配

在我們了解如何管理服務以及如何高效建立服務發現之前,我們必須了解服務發現所面臨的首要挑戰:IP分配問題。具體而言,Kubernetes將IP地址動態分配給Pod和服務的方式。

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

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

如果你有在多個端口上運行的服務,你可以運行kubectl exec memcached-rm58b env命令,然后對服務名稱進行快速grep操作,之后將會顯示分配給該服務的可用IP地址和端口。不過,這并不是管理服務發現的最有效方法。因為,這種方法中依賴的服務必須在 pod 啟動之前就存在,不然是不會出現在環境變量中的。

Kube-DNS救場

長遠來看,以下闡述的第二種方法通常被認為效率更高,這得益于Kubernetes的插件Kube-DNS。我們先來了解什么是Kube-DNS。顧名思義,Kube-DNS是充當內部DNS解析器的附加組件。它是一個數據庫,其中包含用于查找的鍵值對。鍵是Kubernetes服務的名稱,值是服務所運行的IP地址。

Kube-DNS僅依賴命名空間,無需以其他方式配置Pod和服務,甚至無需修改集群、Pod和服務的配置文件即可進行基于DNS的服務發現。

Kube-DNS同時也支持高級DNS查詢以及DNS策略。例如,你可以對每個Pod進行配置,將其配置為遵循與其運行的節點不同的DNS屬性。這意味著你可以使用私有DNS空間來自定義pod之間如何進行通信。

這一方法還能更進一步,在每個pod的基礎上配置DNS策略。你需要做的就是將節點DNS策略設置為“None”,然后手動配置每個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; 

正如前文所述,你可以使用參數來進一步影響Pod之間和服務之間的通信方式。Kubernetes服務發現支持對高級控件使用label和selector,特別是在管理復雜集群時,label尤為方便。你可以將label分配給組件和容器,以便于識別。

Kubernetes處理label和selector的方式使得這些參數更易于使用。本質上,它們是添加到元數據中的簡單鍵值參數。也就是說,它們實際上并不會影響系統或環境中的其他部分,你可以在復雜的環境中跨pod和服務(甚至跨節點)自由使用label和selector。

接下來,我們要使用副本控制器。同樣,顧名思義,它是一個可以使Kubernetes的系統具有高可用性和可伸縮性的工具。你可以使用副本控制器來創建和管理pod副本并且維護高可用。同時,你也可以輕松地一次性刪除pod及其副本。

Service Mesh和高度彈性伸縮系統

要完成設置,我們需要使用與現有基礎架構和平臺相關的高級服務發現方法。AWS Cloud Map是一個十分有意思的例子。AWS環境中的應用程序資源可以擁有唯一的名稱,并且那些資源會被Cloud Map自動映射。它們注冊完成后,服務會自動變為可發現的,并且在啟動Pod或服務后立即進行注冊過程。

現在有一個新的方法,通過使用服務網格讓管理微服務的復雜陣列變得容易。服務網格標準化了服務和Pod的通信方式。如果你要創建一個高可用的系統,那么在環境中使用服務網格來維護Pod的可見性是一個完美的解決方案。

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

Kubernetes服務發現使得容器平臺具有強大功能以及靈活性,服務網格等方法無疑通過標準化使Kubernetes服務發現更加強大。只要服務在運行,就可以使正確的API調用在每個Pod之前來回傳遞數據而不會中斷。

責任編輯:華軒 來源: 博客園
相關推薦

2021-09-07 09:18:18

Kubernetes負載均衡服務發現

2023-11-29 16:21:30

Kubernetes服務注冊

2023-09-07 23:25:34

微服務服務發現

2023-04-14 14:31:52

Kubernetes服務

2023-04-03 07:17:34

CP集群AP

2011-08-30 10:44:52

遠程服務器服務器管理工具服務器虛擬化

2009-05-25 17:48:16

IT服務管理

2015-04-23 09:14:08

天璣科技服務型企業客戶關系管理

2022-06-17 12:05:25

微服務注冊

2022-08-14 07:04:44

微服務架構設計模式

2010-05-20 18:27:10

IIS服務器

2022-09-23 09:28:11

KubeSealKubernetesSecret

2010-12-28 17:13:32

管理服務器

2021-03-17 07:29:15

Systemctl 管理Linux

2022-03-28 11:27:17

Kubernetes運維服務發現

2022-04-26 05:36:42

服務治理模式

2009-01-05 18:44:48

服務器管理Windows

2018-02-02 15:14:15

2025-01-20 00:10:00

Go語言Kratos

2021-09-03 08:50:50

Dubbo服務引用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产日韩一区二区 | 国产亚洲精品美女久久久久久久久久 | 91精品国产综合久久福利软件 | 成人国产网站 | 国产91观看 | 日韩成人免费在线视频 | 日韩中文一区 | 国产综合一区二区 | 免费看黄视频网站 | 色偷偷噜噜噜亚洲男人 | 五月综合久久 | 免费在线播放黄色 | 麻豆精品国产91久久久久久 | 午夜精品视频一区 | 欧美激情精品久久久久 | 涩涩视频网站在线观看 | 欧美视频1区 | 成人二区 | 4hu最新网址 | 午夜精品久久久久久不卡欧美一级 | 久热久热 | 欧美成年黄网站色视频 | 国产乱码精品1区2区3区 | 欧美日韩精品免费观看 | 亚洲最大福利网 | 一级黄色网页 | 久久久久国产 | 亚洲精品成人在线 | 龙珠z国语版在线观看 | 精品国产欧美一区二区三区成人 | 黄色av网站免费看 | 精品国产91久久久久久 | 日韩精品免费在线观看 | 欧美日韩在线一区 | 性色视频 | 欧美成人精品欧美一级 | 福利片在线看 | 国产在线精品一区二区 | 精品一区二区在线观看 | 成人福利网站 | 日韩有码一区二区三区 |