kubernetes一些簡單的基礎知識

service:分佈式集羣架構的核心

service的幾個特性:api

  • 惟一的名字
  • 擁有一個虛擬IP和端口號
  • 具備遠程服務的能力
  • 映射到提供這種服務能力的一組容器上

集羣管理

圖片描述
圖片描述:k8s將急羣衆的機器劃分爲一個Master節點和一羣工做節點(Node)。安全

Master節點上運行這kube-apiserver、kube-controller-manager和kube-scheduler進程,這些進程負責的功能有(都是自動完成的):網絡

  • 資源管理
  • Pod調度
  • 彈性伸縮
  • 安全控制
  • 系統監控
  • 糾錯
  • 資源管理
  • 資源管理

Kubernetes API Server(kube-apiserver):提供了HTTP REST接口的關鍵服務進程,是Kubernates裏全部資源的增刪改查操做的惟一入口,也是集羣控制的入口進程。架構

Kubernetes Controller Manager(kube-controller-manager):kubernetes中全部資源對象的自動化控制中心,能夠理解爲資源對象的大腦。負載均衡

Kubernetes Scheduler(kube-scheduler):負責資源調度(Pod調度)的進程。分佈式

Node

圖片描述
圖片解釋:Node既能夠是物理機也能夠是虛擬機。每一個Node節點都會唄Master分配一些工做負載,當某個Node宕機是,其餘上的工做負載會被Master自動轉移到其餘節點上去。Node節點中運行這許多的Pod,每一個Pod裏運行這一個Pause容器和多個業務容器,其中這些業務容器共享Pause容器的網絡棧和Volume掛在卷,方便業務容器之間的高效通訊和數據交換。
Node中運行着kubelet、kube-proxy和Docker Engine進程,兩個進程負責的功能有:spa

  • 建立POD
  • 啓動POD
  • 監控POD
  • 重啓POD
  • 銷燬POD
  • 實現軟件模式的負載均衡

kubelet:負責Pod對應的容器的建立,啓動等任務,同時與Master節點密切協做,實現集羣管理的基本功能。設計

kube-proxy:實現Kubernetes Service的通訊與負載均衡的重要組件。server

Docker Engine:Docker引擎,負責本機的容器建立和管理工做。對象

Pod

Pod 運行在Node中,每一個Pod裏運行這一個Pause容器和多個業務容器,其中這些業務容器共享Pause容器的網絡棧和Volume掛在卷,方便業務容器之間的高效通訊和數據交換。
爲何Kubernetes會設計一個全新的Pod概念而且有這樣特殊的組成結構?

  • 以一組容器爲單元的話,很難對總體簡單的判斷及有效的進行行動,而以不易死亡的Pause容器做爲Pod的根容器,用它的狀態來表明整個容器組的狀態,從而簡化判斷和行動。
  • 業務容器共享Pause容器的網絡棧和Volume掛在卷,方便業務容器之間的高效通訊和數據交換。

kuberbetes要求底層網絡支持集羣內部任意兩個Pod之間的TCP/IP直接通訊,才用虛擬二層技術實現。
Pod有兩種類型:普通的Pod和靜態的Pod

  • 靜態Pod不存放在Kuberbetes的etcd裏面,而是放在某個具體的Node上的一個具體的文件中,而且只有在此Node上啓動運行
  • 普通Pod一旦被建立,就會放入到etcd中存儲,隨後會被Kubernetes Master調度到某個具體的Node上並進行綁定,隨後該Pod被對應的Node上的kubelet進程實例化成一組相關的Docker容器並啓動起來。

擴容和服務升級

kubernetes集羣中,只要爲須要擴容的Service關聯的Podcast建立一個RC便可,RC(Replication Controller)包括三個關鍵的信息:

  • 目標Pod的定義
  • 目標Pod須要運行的副本數量(Replicas)
  • 要監控的目標Pod的標籤(label)

建立好RC以後,kubernetes會經過RC中定義的Label篩選出對應的Pod實例並實時監控器狀態和數量,若是實例少於定義的副本數量,則會根據RC定義的Pod模板來建立新的Pod,但後調度到合適的Node上運行。

相關文章
相關標籤/搜索