Kubernetes是一個開源容器編排引擎,用於自動化容器化應用程序的部署,擴展和管理。開源項目由Cloud Native Computing Foundation(CNCF)託管。mysql
Kubernetes是一個可移植,可擴展的開源平臺,用於管理容器化工做負載和服務,有助於聲明性配置和自動化。它擁有龐大,快速發展的生態系統。Kubernetes服務,具備普遍的工具和支持可用。sql
傳統部署時代: 早期,組織在物理服務器上運行應用程序。沒法爲物理服務器中的應用程序定義資源邊界,這會致使資源分配問題。例如,若是在物理服務器上運行多個應用程序,則可能存在一個應用程序佔用大部分資源的狀況,所以其餘應用程序將表現不佳。解決方案是在不一樣的物理服務器上運行每一個應用程序。可是因爲資源未獲得充分利用,這並無擴展,組織維護許多物理服務器的成本很高。數據庫
虛擬化部署時代:做爲解決方案,引入了虛擬化。它容許您在單個物理服務器的CPU上運行多個虛擬機(VM)。虛擬化容許應用程序在VM之間隔離,並提供必定程度的安全性,由於另外一個應用程序沒法自由訪問一個應用程序的信息。json
虛擬化能夠更好地利用物理服務器中的資源,而且能夠實現更好的可擴展性,由於能夠輕鬆添加或更新應用程序,下降硬件成本等等。緩存
每一個VM都是在虛擬化硬件之上運行全部組件(包括其本身的操做系統)的完整計算機。安全
容器部署時代:容器相似於VM,但它們具備寬鬆的隔離屬性,可在應用程序之間共享操做系統(OS)。所以,容器被認爲是輕質的。與VM相似,容器具備本身的文件系統,CPU,內存,進程空間等。當它們與底層基礎架構分離時,它們能夠跨雲和OS分發進行移植。服務器
容器愈來愈受歡迎,由於它們有不少好處。下面列出了一些容器優點:markdown
此頁面是Kubernetes的概述。網絡
Kubernetes是一個可移植,可擴展的開源平臺,用於管理容器化工做負載和服務,有助於聲明性配置和自動化。它擁有龐大,快速發展的生態系統。Kubernetes服務,支持和工具普遍可用。架構
Kubernetes這個名字源於希臘語,意思是舵手或飛行員。谷歌在2014年開放了Kubernetes項目.Kubernetes創建在谷歌擁有大量運行生產工做量的十五年經驗的基礎上,結合了社區中的最佳創意和實踐。
讓咱們來看看爲何Kubernetes如此有用,能夠追溯到時間。
傳統部署時代: 早期,組織在物理服務器上運行應用程序。沒法爲物理服務器中的應用程序定義資源邊界,這會致使資源分配問題。例如,若是在物理服務器上運行多個應用程序,則可能存在一個應用程序佔用大部分資源的狀況,所以其餘應用程序將表現不佳。解決方案是在不一樣的物理服務器上運行每一個應用程序。可是因爲資源未獲得充分利用,這並無擴展,組織維護許多物理服務器的成本很高。
虛擬化部署時代:做爲解決方案,引入了虛擬化。它容許您在單個物理服務器的CPU上運行多個虛擬機(VM)。虛擬化容許應用程序在VM之間隔離,並提供必定程度的安全性,由於另外一個應用程序沒法自由訪問一個應用程序的信息。
虛擬化能夠更好地利用物理服務器中的資源,而且能夠實現更好的可擴展性,由於能夠輕鬆添加或更新應用程序,下降硬件成本等等。
每一個VM都是在虛擬化硬件之上運行全部組件(包括其本身的操做系統)的完整計算機。
容器部署時代:容器相似於VM,但它們具備寬鬆的隔離屬性,可在應用程序之間共享操做系統(OS)。所以,容器被認爲是輕質的。與VM相似,容器具備本身的文件系統,CPU,內存,進程空間等。當它們與底層基礎架構分離時,它們能夠跨雲和OS分發進行移植。
容器愈來愈受歡迎,由於它們有不少好處。下面列出了一些容器優點:
容器是捆綁和運行應用程序的好方法。在生產環境中,您須要管理運行應用程序的容器並確保沒有停機時間。例如,若是容器發生故障,則須要從新啓動另外一個容器。若是系統處理這種行爲會不會更容易?
這就是Kubernetes拯救的方式!Kubernetes爲您提供了一個彈性運行分佈式系統的框架。它負責您的擴展要求,故障轉移,部署模式等。例如,Kubernetes能夠輕鬆管理系統的canary部署。
Kubernetes爲您提供:
Kubernetes不是一個傳統的,一應俱全的PaaS(平臺即服務)系統。因爲Kubernetes在容器級而非硬件級運行,所以它提供了PaaS產品經常使用的一些通用功能,例如部署,擴展,負載平衡,日誌記錄和監控。可是,Kubernetes不是單片,並且這些默認解決方案是可選的和可插拔的。Kubernetes提供了構建開發人員平臺的構建塊,但在重要的地方保留了用戶選擇和靈活性。
Kubernetes: