新的一年仍是要學習一些新技術的,先從k8s開始吧。 做爲一個想成爲「微服務技術專家」,除了上層類spring cloud的解決方案,服務治理方案以外,k8s做爲底層基礎設施,所承擔的自動擴縮容,devops等功能也是微服務架構中很重要的一環。前端
k8s做爲容器化操做系統,包括了部署,調度,節點集羣間擴展。docker做爲k8s底層的調度組件。主要具有:node
k8s的集羣,通常以一組物理節點或虛擬機節點組成,在節點上部署k8s,架構圖以下: spring
經過上圖能夠觀察到一些名詞:docker
Pod安裝在節點上,包含一組容器和卷,同一個Pod裏面的容器共享網絡命名空間,可使用localhost進行通訊。pod是隨時建立銷燬的。api
Label是一個鍵值對,能夠用來標記pod,service或者replication controller能夠經過selectors選擇帶有指定label的pod。網絡
經過RC能夠確保任什麼時候間都存在指定數量的pod副本。好比建立3個副本,k8s會監控他們,隨時確保永遠有3個副本在運行。架構
建立RC時,須要指定兩個東西:負載均衡
多個Pod副本能夠經過Service作負載均衡。微服務
因爲Pod的IP是短暫的,因此引入了Service,Service是個邏輯概念,Service經過selector篩選label和Pod進行綁定。學習
在Service對pod進行綁定時會作如下事情:
Node叫作節點,通常是物理機或者虛擬機,是k8s的工做節點,node上有k8s相關的關鍵組件:
Master是集羣的主節點,擁有K8s api server,能夠對外提供rest交互,master節點能夠用來建立和複製pod的RC。