本文將介紹Kubernetes 的重要特性,這將有助于您更深入地了解 Kubernetes 的功能概念。
-
- 自動(dòng)裝箱
-
- 服務(wù)發(fā)現(xiàn)和負(fù)載均衡
-
- 存儲(chǔ)編排
-
- 自愈
-
- 自動(dòng)推出和回滾
- 5.1. 推出
- 5.2. 回滾
-
- Secret和配置映射
- 6.1. Secret
- 6.2. 配置映射
-
- 水平縮放
-
- 結(jié)論
1. 自動(dòng)裝箱
這是 Kubernetes 最顯著的特性之一,Kubernetes 根據(jù)所需資源和其他限制條件智能地定位容器,而不會(huì)影響可用性。
Kubernetes 提供資源管理,它可以自動(dòng)指定 Pod 中的每個(gè)容器如何消耗 CPU 和 RAM 等資源。
2. 服務(wù)發(fā)現(xiàn)和負(fù)載均衡
服務(wù)發(fā)現(xiàn)和負(fù)載均衡在 Kubernetes 中作為服務(wù)提供,服務(wù)以一致的方式跨集群將 Pod 連接到網(wǎng)絡(luò)。確定如何連接到服務(wù)的過(guò)程稱(chēng)為服務(wù)發(fā)現(xiàn)。
容器的集合是 POD,具有相同功能集的 POD 被組合成一個(gè)集合,稱(chēng)為服務(wù)。
每個(gè) POD 將被分配一個(gè) IP 地址和單個(gè) DNS 名稱(chēng)用于服務(wù)(POD 集),借助這種架構(gòu),Kubernetes 將對(duì) POD 之間的網(wǎng)絡(luò)和通信進(jìn)行明確定義的控制,并且可以實(shí)現(xiàn)負(fù)載平衡。
在組成單個(gè)服務(wù)的實(shí)例集合前放置負(fù)載均衡器(反向代理,如 Nginx 或 HAProxy)是解決服務(wù)發(fā)現(xiàn)問(wèn)題的常用技術(shù)。
負(fù)載平衡器的地址(DNS 名稱(chēng),或者通常情況下是 IP)是一個(gè)相當(dāng)可靠的數(shù)據(jù),它可以在開(kāi)發(fā)或配置階段提供給客戶(hù)端,并且可以在單個(gè)客戶(hù)端的生命周期中保持不變。
之后,從客戶(hù)端的角度來(lái)看,聯(lián)系多實(shí)例服務(wù)與訪(fǎng)問(wèn)單個(gè)網(wǎng)絡(luò)端點(diǎn)沒(méi)有什么不同,換句話(huà)說(shuō),服務(wù)發(fā)現(xiàn)完全發(fā)生在服務(wù)器端。
3. 存儲(chǔ)編排
用戶(hù)可以使用 Kubernetes 掛載他們想要的任何存儲(chǔ)系統(tǒng),包括本地存儲(chǔ)、公共云提供商等。仍然必須提供底層存儲(chǔ)系統(tǒng)。
對(duì)于用戶(hù)和管理人員,Kubernetes 提供了一個(gè) API,它將存儲(chǔ)交付方式與存儲(chǔ)使用方式的細(xì)節(jié)隔離開(kāi)來(lái)。
關(guān)于將持久性存儲(chǔ)與 Kubernetes 集成,有幾個(gè)術(shù)語(yǔ)需要理解。,它們?nèi)缦拢?/p>
- 容器存儲(chǔ)接口(CSI):它是一個(gè)標(biāo)準(zhǔn),允許所有容器編排器以一致的方式連接存儲(chǔ)系統(tǒng),例如Ondat。存儲(chǔ)供應(yīng)商應(yīng)該在 CSI 發(fā)布之前將他們的集成層直接寫(xiě)入 Kubernetes 源代碼。因此,升級(jí)既困難又耗時(shí),因?yàn)槿魏稳毕荻伎赡軐?dǎo)致 Kubernetes 崩潰。
- 存儲(chǔ)類(lèi):管理員可以預(yù)先定義 Kubernetes 用戶(hù)能夠使用 Kubernetes 存儲(chǔ)類(lèi)提供和附加到他們的應(yīng)用程序的存儲(chǔ)類(lèi)型。
- 持久卷 (PV):持久卷是已作為卷添加到集群中的虛擬存儲(chǔ)實(shí)例。PV可以引用物理存儲(chǔ)硬件或軟件定義的存儲(chǔ),例如Ondat。
- 持久卷聲明 (PVC):這是對(duì)要供應(yīng)的某種類(lèi)型和配置的存儲(chǔ)的請(qǐng)求。
4. 自愈
Kubernetes 的自我修復(fù)能力是其最吸引人的功能之一,如果容器化應(yīng)用程序或應(yīng)用程序組件出現(xiàn)故障,Kubernetes 將自動(dòng)重新加載它。
Kubernetes 的編排功能可以根據(jù)設(shè)置監(jiān)控和替換不健康的容器,Pods 是封裝單個(gè)或多個(gè)容器的最小單元,也可以由 Kubernetes 修復(fù)。
在自愈過(guò)程中,復(fù)制控制器通過(guò)執(zhí)行以下任務(wù)來(lái)確保應(yīng)用程序的容錯(cuò)或可用性。
- 如果容器出現(xiàn)故障,Kubernetes 會(huì)重新啟動(dòng)容器。
- 如果任何節(jié)點(diǎn)出現(xiàn)故障,Kubernetes 會(huì)重新安排其他節(jié)點(diǎn)上的容器。
- 如果容器沒(méi)有響應(yīng)客戶(hù)端/用戶(hù),Kubernetes 會(huì)終止容器。
5. 自動(dòng)推出和回滾
5.1. 推出
盡管開(kāi)發(fā)人員希望更新應(yīng)用程序的代碼,但企業(yè)的目標(biāo)是使應(yīng)用程序的停機(jī)時(shí)間為零。應(yīng)用程序的更新稱(chēng)為rollout,這是在 Kubernetes 中使用滾動(dòng)升級(jí)完成的。
通過(guò)使用新的 Pod 實(shí)例逐步升級(jí),滾動(dòng)更新允許在零停機(jī)時(shí)間的情況下更新部署,新的 Pod 將被安排在有可用資源的節(jié)點(diǎn)上。
- 客戶(hù)端使用新版本的 POD 進(jìn)行更新,例如 V2。
- 在一個(gè)副本集中,只允許使用相同版本的 POD,因此,Kubernetes 將創(chuàng)建副本集 2,其中將添加新版本的 POD V2,并確保健康檢查,一旦 POD V2 運(yùn)行良好,它將取代其中一個(gè) POD V1。
- 它將遵循相同的規(guī)則并將所有 POD V1 替換為 POD V2。
5.2. 回滾
當(dāng) Deployment 不穩(wěn)定時(shí),例如當(dāng)它循環(huán)崩潰時(shí),您可能需要回滾 Deployment。默認(rèn)情況下,系統(tǒng)會(huì)保存所有 Deployment 的 rollout 歷史,以便您可以隨時(shí)回滾。
在上圖中,POD V1 被保留在歷史記錄中,以便您在發(fā)現(xiàn) POD V2 的部署有任何問(wèn)題時(shí)可以回滾。
6. Secret和配置映射
6.1. Secret
Secret是一小段機(jī)密數(shù)據(jù),例如密碼、令牌或密鑰?;蛘?,此類(lèi)信息可能包含在 Pod 規(guī)范或容器映像中。
如果您使用 Secret,則不必在應(yīng)用程序代碼中包含機(jī)密數(shù)據(jù),在處理Secret時(shí),有兩個(gè)層面需要考慮。
必須首先創(chuàng)建Secret,然后才能將其引入到 Pod 中,與其將機(jī)密數(shù)據(jù)放在容器圖片或 Pod 定義中,不如將其保密更安全、更具適應(yīng)性。
6.2. 配置映射
ConfigMap 是一個(gè)鍵值對(duì)存儲(chǔ),它是一個(gè)用于存儲(chǔ)非機(jī)密數(shù)據(jù)的 API 對(duì)象,Pod 可以將 ConfigMap 用作環(huán)境變量、命令行參數(shù)或卷配置文件。
它允許您將特定于環(huán)境的配置與容器映像分離,從而允許您簡(jiǎn)單地移植應(yīng)用程序。
ConfigMaps 的配置分為兩個(gè)階段,第一步是制作 ConfigMap,然后將它們注入到 pod 中。
7. 水平縮放
當(dāng)對(duì)工作負(fù)載的需求增加或減少時(shí),Kubernetes 可以自動(dòng)增加或減少為該作業(yè)提供服務(wù)的 pod 副本的數(shù)量。
Horizontal Pod Autoscaler 在 Kubernetes 中實(shí)現(xiàn)為控制器和 API 資源。控制器的行為由資源決定。
控制器定期調(diào)整復(fù)制控制器或部署中的副本數(shù)量,以將觀察到的指標(biāo)(如平均 CPU 利用率、平均內(nèi)存利用率或任何其他自定義統(tǒng)計(jì)數(shù)據(jù))與用戶(hù)的目標(biāo)相匹配。
8. 結(jié)論
在本文中,我們已經(jīng)對(duì) Kubernetes 的關(guān)鍵特性進(jìn)行了概念性的理解。
-
cpu
+關(guān)注
關(guān)注
68文章
10698瀏覽量
209347 -
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207900 -
kubernetes
+關(guān)注
關(guān)注
0文章
222瀏覽量
8655
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論