用打比方的方法,10分鐘給你講清楚Kubernetes

譯自:https://opensource.com/article/20/7/kubernetes-analogyweb


Kubernetes容器編排系統背後的概念可能很難理解。這裏作了一個簡單的類比:把房子裏的房間出租,幫助你瞭解Kubernetes是如何工做的。微信


如何在房子裏出租房間              網絡


想象一下你擁有一座有10個房間的房子。你想經過在線住宿服務出租其中的三個房間。你有兩個選擇:發佈廣告,本身管理一切;僱人幫你作。             架構


想省事兒,你決定僱傭一個租賃代理來處理這些事情。你與代理的合同規定:app

——在任什麼時候候,都應該有三個房間出租給客人。             運維

——每一個房間有兩張牀。             微服務

——每次客人預訂時,鑰匙都須要在適當的時間交給客人。             工具

——每次客人離開時,房間都要打掃乾淨。             學習

——若是有太多的預訂請求(例如在假日期間),那麼可預訂的房間能夠從3個增長到10個。             大數據


就這樣!你不用操什麼心了,願意的話能夠不時地用電話聯繫代理了解狀況。             


如何管理租賃              


代理僱傭員工來知足你的需求。假設有三個員工管理三個房間:一號房間預訂後,員工一確保房間情況良好,提供鑰匙,清潔服務等。             


牀是最基本的實體,由於它是客人過夜的最低要求。             


代理將員工、房間、牀位、預訂等全部信息保存在筆記本上。代理還記錄員工的休假時間,以便在某個員工生病或休假時將另外一名員工分配到房間。代理根據須要使用電話聯繫員工。             


當客人在線預訂房間時,預訂會被重定向到一個確保該房間準備就緒的員工。客人來了,拿到鑰匙,晚上睡在牀上,走的時候打掃房間,而後重複這個循環。             


這聽起來很簡單,但這和Kubernetes有什麼關係?             


Kubernetes的相似之處              


你經過僱用其餘員工的代理實現自動化,這與Kubernetes對應用程序的操做相似。下面是它的工做原理。             


假設你是一個應用程序開發者。類比出租房中最基本的實體是牀,應用程序(知足用戶需求的最基本實體)運行在容器中。應用程序的「房間」稱爲pod,它是應用程序運行的地方。


         

節點或工做節點本質上是一臺運行pod的機器。             


代理的員工確保客房功能齊全。在Kubernetes裏,你沒有員工,但有kubelet。kubelet是節點內的一個代理,它確保在該節點內運行的pod是健康的。  


        

租賃代理對應於Kubernetes中的兩件事:kube-scheduler和kube-controller manager。就像代理決定應該將哪一個房間分配給哪一個員工同樣,kube-scheduler根據可用的資源及其需求來決定哪一個pod在哪一個節點上運行。記住,節點是一臺機器,而pod在節點內運行。就像代理決定員工下班時要作什麼同樣,kube-controller manager決定當節點宕機或機器因任何緣由中止工做時該作什麼。 


代理的筆記本上記錄了關於出租多少房間、有多少張牀空着、哪一個員工在作什麼等全部細節,它與etcd數據存儲相對應。這就是配置數據存儲的地方,例如,若是你須要三個pod一直在運行。



Kubernetes中的主節點和worker節點相似於代理和員工用來通訊的電話。主API-server相似於代理的電話,而每一個worker節點的kube-proxy則相似於員工的電話。        


    


API-server、etcd、kube-controller manager和kube-scheduler組成了這個Kubernetes實例的控制中心。


             

部署              


你(房主)和代理之間的合同至關於在Kubernetes中的部署。部署包括一組需求,好比須要運行多少個pod,須要什麼資源(例如CPU)等。Kubernetes確保無需人工干預便可知足這些要求。  


        

還記得協議中的額外條款嗎?若是有太多客人預訂,該怎麼辦?這至關於Kubernetes中的自autoscaling。這意味着Kubernetes能夠擴展你的服務,隨着應用程序用戶的增長,爲你提供更多的pod,就像你能夠在更多的客人試圖預訂時提供更多的房間同樣。正如你不能將預訂擴展到超過10個房間同樣,你可能須要爲自動縮放設置一個上限,由於你不能隨意地繼續增長pod。



後臺回覆「加羣」,帶你進入高手如雲交流羣


推薦閱讀:

Linux 進程必知必會

5種主要的軟件架構模式

5個基本Linux命令行工具的現代化替代品

齊全了!Linux開發運維經常使用調試排障工具

幾款實時查看網卡流量的工具

從零認識 iptables

Linux經常使用命令 &  實用命令萬字總結

容易被遺忘的10個Linux命令,很實用!

阿里雲出品的《深刻淺出k8s》手冊下載

用動圖展現 10 大 Git 命令

經典!服務端TCP鏈接的TIME_WAIT過多

Linux萌新和老司機都必備命令查詢工具

8 個問題完全搞透 DNS 協議

三張圖完全搞懂iptables和netfilter

別再說你不懂Linux內存管理了

強烈安利的幾款畫圖工具

故障排查:K8s中Pod沒法正常解析域名

網絡排錯大講解~

HTTP/3 原理實戰

Linux 下10個幫助你調試的命令

OVS 和 OVS-DPDK 對比

微軟出品的最新K8S學習指南3.0下載



喜歡,就給我一個「在看」



10T 技術資源大放送!包括但不限於:雲計算、虛擬化、微服務、大數據、網絡、Linux、Docker、Kubernetes、Python、Go、C/C++、Shell、PPT 等。在公衆號內回覆「1024,便可免費獲取!!

本文分享自微信公衆號 - Linux雲計算網絡(cloud_dev)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索