Kubernetes基本概念


Basic knowledge

第一:docker是一款開源的容器,其實這個技術並不新鮮。早期在linux中就有LXC這樣的輕量級的虛擬化系統。Docker其實只是換了一種語言來實現而已。Kubernetes意思是航海的舵手,它是docker的一款具有強大功能的編排+監控+災備+負載管理系統

 

第二:kubernetes是基於google十五年的容器使用經驗的總結和最佳實踐,是google內部使用的borg系統的開源版本。改善了docker中很多的不足,可以說是與docker互補的一項技術。

 

第三:kubernetes和docker一樣是用go語言寫的,這就說明它們契合度非常高

 

第四:go語言也是google開源的,大公司就是拽。

 

第五:docker現在是一家公司,以前叫做DotCloud,社區項目叫moby,免費版本叫做

docker CE,企業版本的叫docker EE。

 

更多信息可以戳我

 

element

Replications Controller 複製控制器,它的目的只有一個,那就是保活。Replication Controller確保任何時候Kubernetes集羣中有指定數量的pod副本(replicas)在運行

 

Pod 可以看作是容器的再次封裝,同一個Pod共享一個namespace。其內部通過localhost進行互相通信

 

Label 標籤是一個很先進的概念,就是通過給容器打上不同的標籤進行區分,後期也可以通過標籤進行識別,從而進行更多的操作

 

Service是定義一系列Pod以及訪問這些Pod的策略的一層抽象。Service是通過通過Label找到Pod組。

 

Node

節點可以是物理或者虛擬機器,作爲Kubernetes worker,通常稱爲Minion。每個節點都運行如下Kubernetes關鍵組件:

Kubelet:是主節點代理。

Kube-proxy:Service使用其將鏈接路由到Pod,如上文所述。

Docker或Rocket:Kubernetes使用的容器技術來創建容器。

 

Kubernetes Master

集羣擁有一個Kubernetes Master。Kubernetes Master提供集羣的獨特視角,並且擁有一系列組件,比如KubernetesAPI Server。API Server提供可以用來和集羣交互的REST端點。master節點包括用來創建和複製Pod的Replication Controller。

 

Architec

kubernetes大概分爲5個組件

kube-apiserver:是一個水平設計的控制平臺,對外暴露api

etcd:是一個先進的KV存儲,提供後端的存儲功能,類似的還有zookeeper

kube-scheduler:用於根據外部訪問來調度

kube-controller-manager:管理kubelet,運行在管理節點上,用於處理集羣日常任務的後臺線程

原文翻譯

1、節點控制:負責節點下線時的通知和應答

2、複製控制:負責維持在複製控制器中所定義的pods正確數量

3、端點控制:填充端點對象(加入服務,加入pods)

4、服務賬戶和令牌控制:

kubelet:node的管理插件,用來採集node上的相關信息

kube-proxy:用於node上的網絡訪問

結構如下圖:其中的cAdcisor是用於Pod內部的監控。


wKioL1koB2qyT8SNAAWUifytS6I552.png-wh_50

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章