新聞中心
背景
Kubernetes 從設(shè)計上允許同一個 Kubernetes 集群跨多個失效區(qū)來運行, 通常這些區(qū)位于某個稱作 區(qū)域(region) 邏輯分組中。 主要的云提供商都將區(qū)域定義為一組失效區(qū)的集合(也稱作 可用區(qū)(Availability Zones)), 能夠提供一組一致的功能特性:每個區(qū)域內(nèi),各個可用區(qū)提供相同的 API 和服務(wù)。

10余年的普寧網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整普寧建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“普寧網(wǎng)站設(shè)計”,“普寧網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
典型的云體系結(jié)構(gòu)都會嘗試降低某個區(qū)中的失效影響到其他區(qū)中服務(wù)的概率。
控制面行為
所有的控制面組件 都支持以一組可相互替換的資源池的形式來運行,每個組件都有多個副本。
當(dāng)你部署集群控制面時,應(yīng)將控制面組件的副本跨多個失效區(qū)來部署。 如果可用性是一個很重要的指標(biāo),應(yīng)該選擇至少三個失效區(qū),并將每個 控制面組件(API 服務(wù)器、調(diào)度器、etcd、控制器管理器)復(fù)制多個副本, 跨至少三個失效區(qū)來部署。如果你在運行云控制器管理器,則也應(yīng)該將 該組件跨所選的三個失效區(qū)來部署。
Note:
Kubernetes 并不會為 API 服務(wù)器端點提供跨失效區(qū)的彈性。 你可以為集群 API 服務(wù)器使用多種技術(shù)來提升其可用性,包括使用 DNS 輪轉(zhuǎn)、SRV 記錄或者帶健康檢查的第三方負載均衡解決方案等等。
節(jié)點行為
Kubernetes 自動為負載資源(如Deployment 或 StatefulSet)) 跨集群中不同節(jié)點來部署其 Pods。 這種分布邏輯有助于降低失效帶來的影響。
節(jié)點啟動時,每個節(jié)點上的 kubelet 會向 Kubernetes API 中代表該 kubelet 的 Node 對象 添加 標(biāo)簽。 這些標(biāo)簽可能包含區(qū)信息。
如果你的集群跨了多個可用區(qū)或者地理區(qū)域,你可以使用節(jié)點標(biāo)簽,結(jié)合 Pod 拓撲分布約束 來控制如何在你的集群中多個失效域之間分布 Pods。這里的失效域可以是 地理區(qū)域、可用區(qū)甚至是特定節(jié)點。 這些提示信息使得調(diào)度器 能夠更好地分布 Pods,以實現(xiàn)更好的可用性,降低因為某種失效給整個工作負載 帶來的風(fēng)險。
例如,你可以設(shè)置一種約束,確保某個 StatefulSet 中的三個副本都運行在 不同的可用區(qū)中,只要其他條件允許。你可以通過聲明的方式來定義這種約束, 而不需要顯式指定每個工作負載使用哪些可用區(qū)。
跨多個區(qū)分布節(jié)點
Kubernetes 的核心邏輯并不會幫你創(chuàng)建節(jié)點,你需要自行完成此操作,或者使用 類似 Cluster API 這類工具來替你管理節(jié)點。
使用類似 Cluster API 這類工具,你可以跨多個失效域來定義一組用做你的集群 工作節(jié)點的機器,以及當(dāng)整個區(qū)的服務(wù)出現(xiàn)中斷時如何自動治愈集群的策略。
為 Pods 手動指定區(qū)
你可以應(yīng)用節(jié)點選擇算符約束 到你所創(chuàng)建的 Pods 上,或者為 Deployment、StatefulSet 或 Job 這類工作負載資源 中的 Pod 模板設(shè)置此類約束。
跨區(qū)的存儲訪問
當(dāng)創(chuàng)建持久卷時,?PersistentVolumeLabel ?準(zhǔn)入控制器 會自動向那些鏈接到特定區(qū)的 PersistentVolume 添加區(qū)標(biāo)簽。 調(diào)度器通過其 ?NoVolumeZoneConflict ?斷言確保申領(lǐng)給定 PersistentVolume 的 Pods 只會 被調(diào)度到該卷所在的可用區(qū)。
你可以為 PersistentVolumeClaim 指定StorageClass 以設(shè)置該類中的存儲可以使用的失效域(區(qū))。
網(wǎng)絡(luò)
Kubernetes 自身不提供與可用區(qū)相關(guān)的聯(lián)網(wǎng)配置。 你可以使用網(wǎng)絡(luò)插件 來配置集群的聯(lián)網(wǎng),該網(wǎng)絡(luò)解決方案可能擁有一些與可用區(qū)相關(guān)的元素。 例如,如果你的云提供商支持 ?type=LoadBalancer? 的 Service,則負載均衡器 可能僅會將請求流量發(fā)送到運行在負責(zé)處理給定連接的負載均衡器組件所在的區(qū)。 請查閱云提供商的文檔了解詳細信息。
對于自定義的或本地集群部署,也可以考慮這些因素 Service Ingress 的行為, 包括處理不同失效區(qū)的方法,在很大程度上取決于你的集群是如何搭建的。
失效恢復(fù)
在搭建集群時,你可能需要考慮當(dāng)某區(qū)域中的所有失效區(qū)都同時掉線時,是否以及如何 恢復(fù)服務(wù)。例如,你是否要求在某個區(qū)中至少有一個節(jié)點能夠運行 Pod? 請確保任何對集群很關(guān)鍵的修復(fù)工作都不要指望集群中至少有一個健康節(jié)點。 例如:當(dāng)所有節(jié)點都不健康時,你可能需要運行某個修復(fù)性的 Job, 該 Job 要設(shè)置特定的容忍度 以便修復(fù)操作能夠至少將一個節(jié)點恢復(fù)為可用狀態(tài)。
Kubernetes 對這類問題沒有現(xiàn)成的解決方案;不過這也是要考慮的因素之一。
網(wǎng)頁名稱:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes運行于多可用區(qū)環(huán)境
本文鏈接:http://www.5511xx.com/article/dhjeopi.html


咨詢
建站咨詢
