kubernetes基礎——1.基本概念

1、kubernetes特性前端

自動裝箱,自我修復,水平擴展,服務發現和負載均衡,自動發佈和回滾,密鑰和配置管理,存儲編排,批量處理執行。node

 

2、kubernetes clusterdocker

Masters * 3  <===> Node(worker) * n數據庫

3個Master節點,保持高可用。多個Node工做節點。服務器

 

3、基本概念網絡

1. Master
kubernetes裏德Master是集羣的控制節點,一般3臺服務器做爲冗餘部署。
Master中有三個組件:
(1)API Server:集羣的入口API
(2)scheduler:調度器,調度Pod
(3)Controller Manager:管理各類控制器。(控制器在loop中監控容器狀態,在須要時向API Server發送請求。)負載均衡

 

2. Pod
(1)Pod是Kubernetes的基礎單元,Pod能夠認爲是容器的外殼,給容器做了一層抽象的封裝。
(2)一個Pod能夠包含多個容器,多個容器共享一個網絡名稱空間(net,UTS,IPC),而PID,USER,Mount是隔離的。
(3)一個Pod內的容器共享存儲卷。
(4)一個Pod內的全部容器必須運行在同一個Node上。分佈式

 

3. Node
工做節點,多個Node的資源造成統一資源池。
每一個Node節點上都運行一下關鍵進程:
(1)kubelet:負責Pod對應的容器的建立、啓停等任務,同時與Master節點密切協做,實現集羣管理的基本功能。
(2)kube-proxy:實現Kubernetes Service的通訊與負載均衡機制的重要組件。
(3)Docker:Docker引擎,負責本機的容器建立和管理工做。oop

 

4. Label
鍵值對造成的標籤,key與value均由用戶自定。label能夠附加到各類資源上。經過Label Selector(標籤選擇器)查詢與篩選資源對象。spa

 

5. Pod控制器
(1)RC(Replication Controller)保持Pod副本數量,多退少補。
(2)Replica Set與Deployment,RS是RC的升級版本,通常被Deployment所使用。
(3)StatefulSet,面向有狀態服務
(4)Daemon Set
(5)Job,一次性任務
(6)HPA,Horizontal Pod Autoscaler,橫向自動擴容

 

6. Service
(1)定義了服務的訪問入口地址。不是應用程序,只是一個iptables的dnet規則。
(2)前端Pod經過service入口訪問,Service負載後面經過Label Selector篩選出的Pod。
(3)每個Service會生成一個虛擬IP,經過Kubernetes的DNS映射,訪問Service的name就好。

 

7. 三種網絡通訊
(1)同一個Pod內的多個容器間經過lo
(2)各Pod之間的通訊(跨host)Overlay疊加網絡,即隧道
(3)Pod與Service之間通訊:Pod內某容器 ——> 網關(docker0) ——> IPV或iptables規則 ——> Service ——> Pod

三種IP
NodeIP:Node節點的IP
PodIP:Pod的IP
CluserIP:Service的IP

注:每一個node節點中的kube-proxy組件負責更新IPVS或iptables規則。API server ——> kube-proxy ——> 規則

 

8. etcd
一個高可用的分佈式鍵值數據庫。
用來維護全部主節點的狀態。

 

9. CNI
容器網絡接口,遵循CNI開發的服務就能夠做爲kubernetes的網絡解決方案。
常見的三方方案:
(1)flannel:配置網絡,不支持網絡策略
(2)calico:配置網絡,配置策略,但使用複雜
(3)canel:使用flannel配置網絡,使用calico配置策略。

注:能夠像DNS同樣做爲kubernetes的附件,也能夠在node上做爲守護進程來使用。

 

10. Namespacekubernetes的Namespace是邏輯上的分組,以便於管理與資源隔離。與docker的Namespace是不一樣的概念。

相關文章
相關標籤/搜索