摘要:是谷歌內部為解決這個問題所做的工作的產物,它為管理容器如何在整個集群中運行提供了一個單一的框架。在云中使用服務在許多云中作為標準問題項提供,盡管它在谷歌云平臺,中最突出地表現為本地特性。使用,運行控制平面,將重點部署將用于所需配置的容器。
每一項創新都會帶來新的復雜性。容器使以一種方便的、可移植的形式打包和運行應用程序成為可能,但至少要說以規模管理容器是一個挑戰。
Kubernetes是谷歌內部為解決這個問題所做的工作的產物,它為管理容器如何在整個集群中運行提供了一個單一的框架。它提供的服務通常集中在catch all術語“協調”下,但這涵蓋了很多領域:調度容器、容器之間的服務發現、跨系統的負載平衡、滾動更新、回滾、高可用性等等。
使用Kubernetes發行版
Kubernetes誕生于管理Linux容器。但是,對于Kubernetes 1.5,Kubernetes也支持Windows服務器容器,盡管Kubernetes控制平面必須繼續在Linux上運行。當然,借助虛擬化,可以在任何平臺上開始使用Kubernetes。
如果選擇在自己的硬件或虛擬機上運行Kubernetes,一種常見的方法是獲得打包的Kubernetes分發,它通常將上游Kubernetes位與其他部分(容器注冊表、網絡、存儲、安全性、日志記錄、監控、連續集成管道等)結合在一起以完成TE部署。此外,Kubernetes發行版通常可以安裝并運行在任何虛擬機基礎設施中:AmazonEC2、Azure虛擬機、Google計算引擎、OpenStack等。
另一種方法是在傳統的Linux發行版上運行Kubernetes,盡管這通常會帶來更多的管理開銷和手工操作。例如,Red Hat Enterprise Linux在其軟件包存儲庫中有Kubernetes,但甚至Red Hat也建議僅用于測試和實驗。Red Hat Stack建議用戶通過OpenShift PaaS使用Kubernetes,而不是手工拼湊一些東西,因為OpenShift現在使用Kubernetes作為自己的本地編排器。
許多傳統的Linux發行版為建立Kubernetes和其他大型軟件棧提供了特殊的工具。例如,Ubuntu提供了一個名為conjure-up的工具,可以用來在云和裸機實例上部署Kubernetes的上游版本。Canonical還提供了Microk8s,一個通過快照包系統安裝的Kubernetes版本。
在云中使用Kubernetes服務
Kubernetes在許多云中作為標準問題項提供,盡管它在谷歌云平臺(Google Cloud Platform,GCP)中最突出地表現為本地特性。GCP提供兩種運行Kubernetes的主要方法。最方便和緊密集成的方法是通過google Kubernetes引擎,它允許運行Kubernetes的命令行工具來管理創建的集群。
或者,可以使用Google計算引擎設置計算集群并手動部署Kubernetes。此方法需要更重的提升,但允許對容器引擎進行不可能的自定義。如果剛開始使用容器,請使用容器引擎。稍后,在想嘗試一些更高級的東西之后,比如定制版的Kubernetes或自己修改版本,可以部署運行Kubernetes發行版的VM。
對于Amazon,最初必須通過在EC2中部署計算集群來運行Kubernetes。這仍然是一個選擇,但Amazon現在為Kubernetes(EKS)提供彈性集裝箱服務。使用EKS,Amazon運行控制平面,將重點部署將用于所需配置的容器。EKS還運行標準的上游版Kubernetes。一個聰明的特性是Kubernetes與AWS組合的其余部分的集成。AWS服務在EKS中顯示為Kubernetes本機自定義資源定義,因此對AWS或Kubernetes的任何更改都不會破壞這種連接。
許多Kubernetes發行版附帶了在AWS和其他地方設置的詳細說明。例如,Red Hat OpenShift可以通過交互式安裝程序或腳本安裝在一臺或多臺主機上,或者使用TerraForm“基礎設施即代碼”配置工具。或者,Kubernetes的kops工具可以用于在AWS上提供一個通用虛擬機集群,并支持Google Cloud Engine,VMware vSphere和其他正在開發的云。
Microsoft Azure通過Azure Kubernetes服務支持Kubernetes。在這里由Azure管理Kubernetes主節點,而通過資源管理器模板或TerraForm創建集群。如果希望同時控制主節點和代理節點,則可以始終在Azure虛擬機上安裝Kubernetes分發版。這就是說,AKS的一個關鍵優勢是,不需要為主節點的使用付費,只需為代理付費。
在各種環境(云環境或其他環境)中提供基本Kubernetes集群的一種快速方法是在任何地方使用一個名為Kubernetes的項目。此腳本適用于Google計算引擎、Microsoft Azure、VMware vSphere(需要vCenter)和OpenStack。在每種情況下,Kubernetes Anywhere都為設置提供一定程度的自動化。
使用MiniKube在本地運行Kubernetesetes
如果只在本地環境(如開發機器)中運行Kubernetes,而不需要整個Kubernetes enchilada,那么有幾種方法可以設置“剛好足夠”的Kubernetes以供使用。
一個由Kubernetes開發團隊本身提供的是MiniKube。運行它,將在選擇的虛擬化主機中部署單節點Kubernetes集群。MiniKube有一些先決條件,但它們都很容易在MacOS、Linux或Windows上實現。
運行Kubernetes演示應用程序
一旦運行了Kubernetes,就可以開始部署和管理容器了。可以通過使用許多基于容器的應用程序演示中的一個來輕松進入容器操作。以一個現有的基于容器的應用程序演示為例,自己組裝它,看看它是如何組成的,部署它,然后逐步修改它,直到它接近對您有用的東西。如果選擇了MiniKube來找到自己的立足點,可以使用hello MiniKube教程在單節點Kubernetes演示安裝中創建一個包含簡單node.js應用程序的Docker容器。
一旦你有了這個想法,你就可以在自己的容器中進行交換,并練習部署這些容器。下一步是部署一個類似于在生產中使用的示例應用程序,并熟悉更高級的Kubernetes概念,例如pods(一個或多個包含應用程序的容器)、服務(pods的邏輯集)、副本集(在機器故障時提供自愈)和部署(appli陽離子版本控制)。
舉個例子,打開wordpress/mysql示例應用程序的引擎,將看到更多關于如何將這些組件部署到Kubernetes中并運行它們的說明。還將看到生產級Kubernetes應用程序使用的許多概念的實現細節。將學習如何設置持久性卷以保留應用程序的狀態,如何通過服務向彼此和外部世界公開pods,如何將應用程序密碼和API密鑰存儲為機密,等等。
weaveworks有一個示例應用程序sock shop,它展示了如何使用微服務模式來組成Kubernetes中的應用程序。對于熟悉底層技術的人來說,sock shop將是最有用的——node.js、go-kit和spring-boot,但是核心原則是要超越特定的框架并說明云本地技術。
如果你瀏覽了wordpress/mysql應用程序,并設想有一個預先烘焙的Kubernetes應用程序可以滿足你的需求,那么你可能是對的。Kubernetes有一個名為helm的應用程序定義系統,它提供了打包、版本和共享Kubernetes應用程序的方法。許多流行的應用程序(gitlab、wordpress)和應用程序構建塊(mysql、nginx)通過Kubeapps門戶網站很容易獲得helm“圖表”。
使用Kubernetes管理容器
Kubernetes通過強大的抽象(如pods和服務)簡化了容器管理,同時通過標簽和名稱空間等機制提供了很大的靈活性,這些機制可用于分離pods、服務和部署(如開發、分段和生產工作負載)。
如果采用上述其中一個示例并在多個命名空間中設置不同的實例,那么可以練習對每個命名空間中的組件進行獨立于其他名稱空間的更改。然后,可以使用部署來允許這些更新在給定名稱空間的pods中逐步展開。
下一步是學習如何通過管理基礎設施的工具來驅動Kubernetes。例如,Puppet有一個模塊,用于創建和操作Kubernetes中的資源。同樣,HashiCorp的地形對Kubernetes作為一種資源的支持也越來越大。如果您計劃使用這樣的資源管理器,請注意,不同的工具可能會給表帶來非常不同的假設。例如,puppet和terraform默認分別使用可變和不可變的基礎設施。這些哲學和行為上的差異可以決定它有多容易或有多困難。
本文翻譯自Serdar Yegulalp(InfoWorld資深作家)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/5854.html
摘要:該公司剛剛宣布了一個計劃,意在取代現有的發行版。這甚至可能幫找到一個新方向。為了解決這個問題,我們在上增加了一個名為的新功能。總體而言,整個過程呈現如下建立包括,以及一個的基礎架構。 這是 TCP CLOUD 聯合創始人 & 前 CTO Jakub Pavlik 于 2017 年 7 月 9 日發布于 www.mirantis.com 的文章。本文主要介紹了 Virtlet 及其未來與...
摘要:背景中有的概念,其中對它的管理有點松散。鏡像是文件系統層次的根,任何被掛載到鏡像中的特定目錄上。中的每個容器必須獨立指定每個的位置。當一個由于某種原因從節點上移除,中的數據也會被永久刪除。 容器中的磁盤文件是易失的,這給運行在容器中的大型應用帶來了一些麻煩。首先,當一個容器崩潰,kubelet會重啟它,但是之前存儲的文件會丟失 - 容器以一個初始的狀態重建。第二,當在一個Pod中運行多...
摘要:的調度機制組件調度器會將調度到資源滿足要求并且評分最高的上。這個特性的設計初衷是為了替代,并擴展更強大的調度策略。和完全相同,以進行強制的約束。軟規則除了,,還有一條軟規則配置后,沒有相關污點策略的會盡量避免調度到該上。 k8s的調度機制 scheduler組件 k8s調度器會將pod調度到資源滿足要求并且評分最高的node上。我們可以使用多種規則比如:1.設置cpu、內存的使用要求;...
摘要:宋體是面向內部基于打造的容器服務平臺,旨在提升內部研發效率,幫助改善規范研發流程。宋體作為容器編排框架,可以減輕配置部署管理和監控大規模容器應用的負擔。宋體核心原理宋體解釋不得不提中兩個最具價值的理念聲明式和控制器模式。KUN(Keep UCloud Nimble)是面向 UCloud 內部、基于 Kubernetes 打造的容器服務平臺,旨在提升內部研發效率,幫助改善、規范研發流程。在 K...
摘要:注意事項用容器和編排工具運行介紹了一些額外注意事項數據庫是有狀態的。尤其,在副本集合中,一個節點必須被用來執行和命令。名字叫做的被配置用來確保的單個實例是一直在運行的。 想要在你的手提電腦上嘗試MongoDB嗎?執行一個命令,然后擁有一個輕量級,獨立的沙箱;再執行一個命令,刪除你完成之后所有的痕跡。是不是需要一個在多個環境中都跟你的應用程序堆棧一樣的應用程序?創建一你自己的容器鏡像,然...
閱讀 785·2023-04-25 20:47
閱讀 2553·2019-08-30 15:53
閱讀 959·2019-08-26 14:05
閱讀 905·2019-08-26 11:59
閱讀 1693·2019-08-26 11:43
閱讀 1694·2019-08-26 10:57
閱讀 1367·2019-08-23 18:23
閱讀 2692·2019-08-23 12:57