k8s學習筆記之一:kubernetes簡介

1、虛擬化技術

1.什麼是虛擬化技術跨域

虛擬化,是指經過虛擬化技術將一臺計算機虛擬爲多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每一個邏輯計算機可運行不一樣的操做系統,而且應用程序均可以在相互獨立的空間內運行而互不影響,從而顯著提升計算機的工做效率。
虛擬化使用軟件的方法從新定義劃分IT資源,能夠實現IT資源的動態分配、靈活調度、跨域共享,提升IT資源利用率,使IT資源可以真正成爲社會基礎設施,服務於各行各業中靈活多變的應用需求。

2.虛擬化的類型服務器

全虛擬化(Full virtualization): 也稱爲原始虛擬化技術, 是另外一種虛擬化方法. 該模型使用虛擬機協調客戶操做系統和原始硬件(見圖2). 這裏"協調"是一個關鍵詞, 由於VMM在客戶操做系統和裸硬件之間用於工做協調. 一些受保護的指令必須由Hypervisor(虛擬機管理程序)來捕獲和處理. 由於操做系統是經過Hypervisor來分享底層硬件.
半虛擬化(Paravirtualization):另外一種相似於全虛擬化的熱門技術. 它使用Hypervisor(虛擬機管理程序)分享存取底層的硬件, 可是它的客戶操做系統集成了虛擬化方面的代碼. 該方法無需從新編譯或引發陷阱, 由於操做系統自身可以與虛擬進程進行很好的協做.

3.虛擬化類型的區別網絡

全虛擬化:運行速度要快於硬件模擬, 可是性能方面不如裸機, 由於Hypervisor須要佔用一些資源. 全虛擬化最大的優勢是操做系統沒有通過任何修改. 它的惟一限制是操做系統必須可以支持底層硬件
半虛擬化:須要客戶操做系統作一些修改(配合Hypervisor), 這是一個不足之處. 可是半虛擬化提供了與原始系統相近的性能. 與全虛擬化同樣, 半虛擬化能夠同時能支持多個不一樣的操做系統.

2、容器技術

1.什麼是容器架構

容器是輕量級的操做系統級虛擬化,可讓咱們在一個資源隔離的進程中運行應用及其依賴項。運行應用程序所必需的組件都將打包成一個鏡像並能夠複用。執行鏡像時,它運行在一個隔離環境中,而且不會共享宿主機的內存、CPU 以及磁盤,這就保證了容器內進程不能監控容器外的任何進程。

2.容器和虛擬化的區別負載均衡

虛擬機會將虛擬硬件、內核(即操做系統)以及用戶空間打包在新虛擬機當中,虛擬機可以利用「虛擬機管理程序」運行在物理設備之上。虛擬機依賴於hypervisor,其一般被安裝在「裸金屬」系統硬件之上,這致使hypervisor在某些方面被認爲是一種操做系統。一旦 hypervisor安裝完成, 就能夠從系統可用計算資源當中分配虛擬機實例了,每臺虛擬機都可以得到惟一的操做系統和負載(應用程序)。簡言之,虛擬機先須要虛擬一個物理環境,而後構建一個完整的操做系統,再搭建一層Runtime,而後供應用程序運行。    
對於容器環境來講,不須要安裝主機操做系統,直接將容器層(好比LXC或libcontainer)安裝在主機操做系統(一般是Linux變種)之上。在安裝完容器層以後,就能夠從系統可用計算資源當中分配容器實例了,而且企業應用能夠被部署在容器當中。可是,每一個容器化應用都會共享相同的操做系統(單個主機操做系統)。容器能夠當作一個裝好了一組特定應用的虛擬機,它直接利用了宿主機的內核,抽象層比虛擬機更少,更加輕量化,啓動速度極快。
相比於虛擬機,容器擁有更高的資源使用效率,由於它並不須要爲每一個應用分配單獨的操做系統——實例規模更小、建立和遷移速度也更快。這意味相比於虛擬機,單個操做系統可以承載更多的容器。雲提供商十分熱衷於容器技術,由於在相同的硬件設備當中,能夠部署數量更多的容器實例。此外,容器易於遷移,可是隻能被遷移到具備兼容操做系統內核的其餘服務器當中,這樣就會給遷移選擇帶來限制。    
由於容器不像虛擬機那樣一樣對內核或者虛擬硬件進行打包,因此每套容器都擁有本身的隔離化用戶空間,從而使得多套容器可以運行在同一主機系統之上。咱們能夠看到所有操做系統層級的架構均可實現跨容器共享,唯一須要獨立構建的就是二進制文件與庫。正由於如此,容器才擁有極爲出色的輕量化特性。 

3、kubernetes

1.什麼是kuberneteselasticsearch

kubernetes,簡稱K8s,是用8代替8個字符「ubernete」而成的縮寫。是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單而且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制

2.kubernetes整體架構性能

3.kubernetes各組件介紹:spa

Master運行組件:
   Etcd: 保存了整個集羣的狀態;
   Apiserver: 提供了資源操做的惟一入口,並提供認證、受權、訪問控制、 API註冊和發現等機制;
   controller manager: 負責維護集羣的狀態,好比故障檢測、自勱擴展、滾勱更新等;
   scheduler: 負責資源的調度,按照預約的調度策略將Pod調度到相應的機器上;
Node運行組件:
   kubelet: 負責維護容器的生命週期,同時也負責Volume(CVI)和網絡(CNI)的管理;
   Container runtime負責鏡像管理以及Pod和容器的真正運行(CRI);
   kube-proxy: 負責爲Service提供cluster內部的服務發現和負載均衡;
除了核心組件,還有一些推薦的Add-ons
   kube-dns負責爲整個集羣提供DNS服務
   Ingress Controller爲服務提供外網入口
   Heapster提供資源監控
   Dashboard提供GUI
   Federation提供跨可用區的集羣
   Fluentd-elasticsearch提供集羣日誌採集、存儲不查詢
相關文章
相關標籤/搜索