一、kubernetes簡介
kubernetes的本質是一組服務器集群,它可以在每個節點上運行特定的程式,來對節點中的容器進行管理,目的是為了實作資源管理的自動化,
主要功能如下:
1、自我修復:一旦某個容器崩潰,會秒級啟動一個新容器
2、彈性伸縮:可以根據業務需要,自動對集群中的容器數量進行伸縮調整
3、服務發現:服務可以通過自動發現的形式找到它所依賴的服務
4、負載均衡:如果一個服務啟動了多個容器,能夠自動的實作負載均衡
5、版本回退:如果發現新發布的程式版本有問題,可以立即回退到舊版本
6、存盤編排:可以根據容器自身的需求自動創建存盤卷
二、kubernetes組件
一個kubernetes集群主要是由控制節點(master)、作業節點(node)組成,每個節點上都會安裝不同的組件
master:集群的控制平面,負責集群的管理
apiserver:資源操作的唯一入口,接收用戶輸入的命令,提供認證授權、API注冊和發現等機制
schedule:負責集群的資源調度,按照預定的調度策略將pod調度到相應的node節點上
controller-manager:負責維護集群的狀態,如何程式部署安排、故障檢測、自動擴展、滾動更新等
etcd:負責存盤集群中各種資源物件的資訊
node:集群的資料平面,負責為容器提供運行環境
kebelet:負責維護容器的生命周期,即通過控制docker,來創建、更新、銷毀容器
kubeproxy:負責提供集群內部的服務發現和負載均衡
docker:負責節點上容器的各種操作

以下,以部署一個nginx服務來說明kubernetes系統各個組件呼叫關系
1、首先要明確,一旦kubernetes環境啟動之后,master和node節點都會將自身的資訊存盤到etcd資料庫中
2、一個nginx服務的安裝請求會首先被發送到master節點的apiserver
3、apiserver組件會呼叫schedule組件來決定到底把服務安裝到哪個節點上(此時,這步會從etcd中讀取各個node的資訊,然后按照一定的演算法進行選擇,并將結果告訴apiserver)
4、apiserver呼叫controller-manager去調度node節點安裝nginx服務
5、kubelet接收到apiserver的指令之后,會通知docker,然后由docker啟動一個nginx的pod(pod是kubernetes的最小單元,容器必須跑在pod中)
6、至此,一個nginx服務就運行了,如果需要訪問nginx,就需要kube-proxy來對pod產生訪問的代理
三、kubernetes概念
master:集群控制節點,每個集群需要至少一個master節點負責集群的管控
node:作業負載節點,由master容器分配到這些node作業節點上,然后node節點上的docker負責容器的運行
pod:k8s最小的控制單元,容器都是運行在pod中的,一個pod中可以有1個或多個容器
controller:控制器,通過它來實作對pod的管理,比如啟動pod,停止pod,伸縮pod等
service:pod對外服務的統一入口,service下可以維護同一類多個pod
label:標簽,用于對pod進行分類,同一類pod會有相同的標簽
namespace:命名空間,用來隔離pod的運行環境

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/549058.html
標籤:其他
上一篇:數學建模—層次分析
