K8s核心概念入門

前言

新的一年仍是要學習一些新技術的,先從k8s開始吧。 做爲一個想成爲「微服務技術專家」,除了上層類spring cloud的解決方案,服務治理方案以外,k8s做爲底層基礎設施,所承擔的自動擴縮容,devops等功能也是微服務架構中很重要的一環。前端

k8s

k8s做爲容器化操做系統,包括了部署,調度,節點集羣間擴展。docker做爲k8s底層的調度組件。主要具有:node

  • 自動化容器的部署和複製
  • 隨時擴展或收縮容器部署
  • 打包容器組,並提供容器間的負載均衡
  • 提供容器彈性操做等

k8s集羣

k8s的集羣,通常以一組物理節點或虛擬機節點組成,在節點上部署k8s,架構圖以下: spring

經過上圖能夠觀察到一些名詞:docker

  • Container
  • Pod
  • Label
  • Replication Controller
  • Service
  • Node
  • K8s Master

Pod

Pod安裝在節點上,包含一組容器和卷,同一個Pod裏面的容器共享網絡命名空間,可使用localhost進行通訊。pod是隨時建立銷燬的。api

  • 由於pod是短暫的,因此須要使用k8s的掛載卷存儲持久化容器數據。
  • pod的建立能夠經過手動建立,也可使用replication controller根據pod模板建立出拷貝。
  • 引入service解決由於pod建立銷燬帶來的ip地址改變的問題。

Label

Label是一個鍵值對,能夠用來標記pod,service或者replication controller能夠經過selectors選擇帶有指定label的pod。網絡

Replication Controller

經過RC能夠確保任什麼時候間都存在指定數量的pod副本。好比建立3個副本,k8s會監控他們,隨時確保永遠有3個副本在運行。架構

建立RC時,須要指定兩個東西:負載均衡

  • Pod模板:用來建立Pod副本。
  • Label:RC須要監控的Pod的副本集。

Service

多個Pod副本能夠經過Service作負載均衡。微服務

因爲Pod的IP是短暫的,因此引入了Service,Service是個邏輯概念,Service經過selector篩選label和Pod進行綁定。學習

在Service對pod進行綁定時會作如下事情:

  • 爲Service建立一個DNS入口,前端Pod會根據DNS查找service並解析出ip地址。
  • 前端pod在獲得service的ip地址後,會根據service的負載均衡策略,請求到具體的pod上,底層經過node上的kube-proxy完成。

Node

Node叫作節點,通常是物理機或者虛擬機,是k8s的工做節點,node上有k8s相關的關鍵組件:

  • Kubelet:主節點代理
  • Kube-proxy:Serivce使用其路由到Pod
  • Docker:用於容器建立

K8s Master

Master是集羣的主節點,擁有K8s api server,能夠對外提供rest交互,master節點能夠用來建立和複製pod的RC。

相關文章
相關標籤/搜索