您好,登錄后才能下訂單哦!
引 言
假設您的業務是在線的:您擁有自己的數據中心,擁有用于運行您網站的私有云。您需要部署許多服務器來運行應用程序并存儲其數據。 也許大多數時候,您的網站的整體流量非常穩定。但也許也有時候,網站的流量會面臨突然的增長,這時您該如何應對? 首先,您需要能夠擴展應用程序,以應對流量增加。若您不想在每年只使用幾次的新硬件上額外花錢,您可以考慮轉向混合云模式。 從私有云轉向混合云,可以大大節省時間和成本。將應用程序(部分)擴展到公有云后,您就只需在使用它們時、僅為您所使用的資源付費。 但是,您該如何選擇公有云?您可以選擇多個公有云嗎? 簡短來說,回答是肯定的,您很有可能需要選擇多個公有云提供商。您也許有不同的團隊,需要處理不同的應用程序,有不同的要求,因此一個云提供商可能無法滿足您的所有需求。此外,許多組織需要遵守某些法律、法規和政策,這些法律、法規和政策要求他們的數據必須實際駐留在某些特定地點。使用多個公有云的策略可以幫助組織滿足這些嚴格的、多樣化的要求。他們還可以從多個數據中心區域或可用區域中進行選擇,以盡可能接近最終用戶,從而為他們提供最佳性能和最小延遲。 跨云擴展的挑戰 你已經決定使用云了,所以讓我們回過頭來思考一下最初的問題。您的應用程序具有針對您的應用程序的微服務部署架構,這一架構上運行著需要擴展的容器。而這,就是Kubernetes發揮作用的地方。Kubernetes這一解決方案,可幫助您管理和編排節點集群中的容器化應用程序。雖然Kubernetes將幫助您管理和擴展部署、節點和集群,但它無法幫助您輕松地跨云提供商管理和擴展它們。這一點我們會在稍后詳細介紹。 Kubernetes集群是一組機器(物理/虛擬),Kubernetes為集群提供資源以運行應用程序。首先,您需要了解的基本Kubernetes概念是: Pod是控制一個或多個容器的單元,它會作為一個應用程序來被調度。通常,您應該為每個應用程序創建一個Pod,以便您可以單獨擴展和控制它們。 節點組件是Kubernetes中的worker machine。節點可以是虛擬機(VM)或物理機,具體取決于集群。每個節點都包含運行pod所需的服務,并由主組件管理。 主組件管理著Pod的生命周期。如果Pod死亡,Controller會創建一個新的Pod;如果你對Pod進行擴容或縮容,那么Controller會創建/銷毀你的Pod。有關Controller類型的更多信息,可以參閱此處: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ 這三個組件的作用是擴展和調度容器。主組件指示調度和擴容的命令,然后節點相應地根據命令來編排pod。 上述只是Kubernetes非常基礎的概念,這篇《零基礎入門│帶你理解Kubernetes》可以帶你更詳細地理解Kubernetes。 嘗試使用Kubernetes解決跨云擴展的問題時,會遇到一些關鍵挑戰: 難以管理多個云、多個集群,設置用戶,設置策略 安裝和配置的復雜性 不同環境的用戶或團隊會有不同體驗 Rancher可以幫助您解決上述難題。Rancher是一個開源的容器管理平臺,用于在生產中運行Kubernetes。Rancher的下述功能可以幫助我們管理和擴展我們的應用程序,無論計算資源是在本地托管還是在多個云上托管: 跨多個集群和云的通用基礎架構管理 簡單易用的Kubernetes配置和部署界面 一鍵輕松擴展Pod和集群 訪問控制和用戶管理(ldap,AD) 工作負載、RBAC、政策和項目管理 在多云、甚至有可能是多個任何可以運行Kubernetes的基礎架構上,Rancher都可以成為您的多個Kubernetes集群的單一控制點。 下面讓我們看看我們如何管理兩個不同區域的多個Kubernetes集群。 啟動Rancher 2.0實例 首先,啟動Rancher 2.0實例。具體方法可以參照這個快速上手指南:https://rancher.com/quick-start/ 上手Rancher和Kubernetes 讓我們在兩個不同的地區的GCP中創建兩個托管的Kubernetes集群。為此,您需要一個服務帳戶密鑰。 在Global選項卡中,我們可以看到所有可用的集群及其狀態。從Provisioning狀態開始,集群準備好后,狀態會變成Active。 現在我們已經從Kubernetes集群中為每個節點部署了許多pod。這些pod將由Kubernetes和Rancher的內部系統使用。 下面繼續為兩個集群部署工作負載。按順序選擇默認項目; 這將打開Workloads選項卡。單擊Deploy,將第一個集群的名稱及Docker鏡像設置為httpd,第二個集群的設置為nginx,因為我們希望將我們的Web服務器暴露給Port映射區域。選擇一個四層負載均衡中的Internet流量。 如果單擊nginx / httpd工作負載,您將看到Rancher實際上按照Kubernetes的建議創建了一個部署來管理ReplicaSet。您還將看到這個ReplicaSet創建的Pod。 擴展Pod和集群 Rancher實例正在管理兩個集群: us-east1b-cluster,運行5個httpd Pod europe-west4-a cluster,運行1個 nginx Pod 單擊Scale列下的“-”(減號圖標),可以減少httpd Pod。我們很快就看到Pod數量減少了。 若想要擴展pod,請單擊Scale列下的“+”(加號圖標)。完成后,您可以立即看到Pod正在被創建,以及ReplicaSet正在擴展事件。使用Pod的右側菜單嘗試刪除其中一個pod,留意觀察ReplicaSet如何重新創建它,以匹配所需的狀態。 如此一來,第一個集群的httpd Pod數從5個變到了2個,第二個集群的nginx Pod從1個變到了7個。現在,第二個集群看起來幾乎耗盡了資源。 通過Rancher,我們還可以通過添加額外的節點來擴展集群。下面嘗試這樣做一下,讓我們將節點數編輯為5。 雖然是Rancher向我們展示了“協調集群”,但其實是Kubernetes在幕后升級集了群主服務器并調整節點池的大小。 稍等一下,最終你應該看到5個節點啟動并運行。 讓我們檢查一下Global選項卡,這樣我們就可以對Rancher正在管理的所有集群有一個全局的了解。 現在我們可以添加更多Pod(如果我們想的話),因為現在我們有新的可用資源了。下面試著把pod數變為13。 最重要的是,所有這些操作都是在沒有停機的情況下完成的。在向上或向下擴展Pod或調整集群大小時,為httpd / nginx部署命中公有IP,HTTP響應狀態代碼始終為200。 總 結 讓我們回顧一下我們的Kubernetes集群縮放練習: 我們使用Rancher創建了兩個集群 我們部署了含有1個 nginx Pod和5個httpd Pod的工作負載 對這兩個部署進行擴容和縮容 調整了集群的大小 所有這些操作,都是通過在Rancher友好且直觀的UI上,通過一些簡單點擊而完成的。當然,您也可以完全使用API完成這些操作。 在任何一種情況下,您都有一個中心點,您可以從中管理所有Kubernetes集群,觀察其狀態或根據需要擴展部署。如果您正在尋找一種工具來幫助您在混合/多云、多區域集群中進行基礎架構管理和容器編排,那么開源的Rancher Kubernetes平臺可能非常適合您。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。