1. 程式人生 > >Kubernetes 編排系統

Kubernetes 編排系統

policy fault 單元 安裝軟件 red 主機 形式 address 搭建

1.1.1 什麽是Kubernetes

Kubernetes (通常稱為K8s,K8s是將8個字母“ubernete”替換為“8”的縮寫) 是用於自動部署、擴展和管理容器化(containerized)應用程序的開源系統。Google設計並捐贈給Cloud Native Computing Foundation(今屬Linux基金會)來使用的。

它旨在提供“跨主機集群的自動部署、擴展以及運行應用程序容器的平臺”。它支持一系列容器工具, 包括Docker等。CNCF於2017年宣布首批Kubernetes認證服務提供商(KCSPs),包含IBM、MIRANTIS、華為、inwinSTACK迎棧科技等服務商。

1.1.2 Kubernetes發展史

Kubernetes (希臘語"舵手" 或 "飛行員") 由Joe Beda,Brendan Burns和Craig McLuckie創立,並由其他谷歌工程師,包括Brian Grant和Tim Hockin進行加盟創作,並由谷歌在2014年首次對外宣布 。它的開發和設計都深受谷歌的Borg系統的影響,它的許多頂級貢獻者之前也是Borg系統的開發者。在谷歌內部,Kubernetes的原始代號曾經是Seven,即星際迷航中友好的Borg(博格人)角色。Kubernetes標識中舵輪有七個輪輻就是對該項目代號的致意。

Kubernetes v1.0於2015年7月21日發布。隨著v1.0版本發布,谷歌與Linux 基金會合作組建了Cloud Native Computing Foundation (CNCF)並把Kubernetes作為種子技術來提供。

Rancher Labs在其Rancher容器管理平臺中包含了Kubernetes的發布版。Kubernetes也在很多其他公司的產品中被使用,比如Red Hat在OpenShift產品中,CoreOS的Tectonic產品中, 以及IBM的IBM雲私有產品中。

1.1.3 Kubernetes 特點

1、可移植: 支持公有雲,私有雲,混合雲,多重雲(multi-cloud)

2、可擴展: 模塊化, 插件化, 可掛載, 可組合

3、自動化: 自動部署,自動重啟,自動復制,自動伸縮/擴展

4、快速部署應用,快速擴展應用

5、無縫對接新的應用功能

6、節省資源,優化硬件資源的使用

1.1.4 Kubernetes規劃組件

參考文檔:http://docs.kubernetes.org.cn/249.html

Kubernetes定義了一組構建塊,它們可以共同提供部署、維護和擴展應用程序的機制。組成Kubernetes的組件設計為松耦合和可擴展的,這樣可以滿足多種不同的工作負載。可擴展性在很大程度上由Kubernetes API提供——它被作為擴展的內部組件以及Kubernetes上運行的容器等使用。

Pod

Kubernetes的基本調度單元稱為“pod”。它可以把更高級別的抽象內容增加到容器化組件。一個pod一般包含一個或多個容器,這樣可以保證它們一直位於主機上,並且可以共享資源。Kubernetes中的每個pod都被分配一個唯一的(在集群內的)IP地址這樣就可以允許應用程序使用端口,而不會有沖突的風險。

Pod可以定義一個卷,例如本地磁盤目錄或網絡磁盤,並將其暴露在pod中的一個容器之中。pod可以通過Kubernetes API手動管理,也可以委托給控制器來管理。

標簽和選擇器

Kubernetes使客戶端(用戶或內部組件)將稱為“標簽”的鍵值對附加到系統中的任何API對象,如pod和節點。相應地,“標簽選擇器”是針對匹配對象的標簽的查詢。