關於k8s微服務的基礎知識分享總結


1.說起k8s,先得講講微服務,來個圖(百度上找到的圖),初識

 

 

   1.微服務架構強調的是一種架構模式,提倡將單一的應用程序,划分為一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間相互協調配合,為用戶提供最終的價值

   2.服務之間的通信(輕量級)基於http的 restful api

   3.每個服務都是圍繞着具體的業務進行構建,能夠獨立部署

   4.核心:將傳統的一站式應用,根據業務拆分成一個一個的服務,每個微服務提供單個業務功能的服務,一個服務做一件事,類似進程的概念,能夠自行的單獨啟動或者銷毀,擁有自己獨立的數據庫

  (先注冊再調用)

 

微服務的缺點:

1.處理分布式系統的復雜度----開發

2.多服務運維成本增加---運維

3.系統部署依賴----運維

4.服務之間通信的成本---運維

5.數據的一致性--運維

6.系統的集成測試---測試

7.性能監控---測試

 

針對這個圖中的兩個點(網關/nacos):

1.SpingCloud-gateway (網關):

  1.過濾器:filter   攔截修改請求,對上游的響應做二次處理

  2.路由:routes  根據目標URL進行路由

  3.斷言:predicates   根據yaml文件,做路徑匹配

 

2.Nacos(注冊中心)

2018年6月阿里推出的開源注冊管理中心,常用端口:8848

1.支持DNS,基於RPC的服務器發現(springcloud的注冊中心),動態的配置服務(配置中心),動態DNS服務

2.可視化平台

3.所有的微服務模塊都得在注冊中心注冊

 

第二塊基礎知識筆記:

1.kubernetes (簡稱k8s),google開源容器集群管理系統

2.k8s用於容器集群的自動化部署,擴容,運維的一個開源平台

3.k8s特點:快速響應用戶需求,快速且有預期的部署,快速擴展應用,無縫對接新應用,節省資源,優化硬件資源,容器編排

4.k8s負責管理服務中所有的docker容器,創建,運行,重啟容器,刪除容器,實現容器集群的自動化部署,自動縮容,維護

5.可以根據不同的條件,進行動態的擴容,縮容,快速響應

6.k8s在部署應用時會自動檢查各個服務器的cpu與內存的使用量,同時會根據申請的cpu與內存資源,將服務部署到合適的服務器上(容器調度策略)

 

k8s基礎組件:

 

 

 1.master節點

1.kube-apiserver: k8s API 集群的統一入口,各組件的協調者,以restful api 提供接口服務,所有的對象資源的增刪改查,監聽都是交給apiserver處理后,再提交給etcd存儲

2.kube-controller-manager: 處理集群中常規的后台任務,一個資源對應一個控制器,controller-manager負責管理這么控制器

3.kube-scheduler: 根據調度算法為新建的pod選擇一個node節點,可以任意部署

4.etcd: 分布式鍵值存儲系統,用於保存集群狀態數據,比如pod,service等對象信息

 

2.nodde節點

1.kubelet:負責pod對應的容器的創建,啟停等任務,同時與master密切協作,實現集群管理的基本功能

2.kube-proxy:實現kubernetes service 的通信與負載均衡機制的重要組件

3.docker engine:docker引擎,負責本機的容器的創建與管理工作

 

1.node是k8s集群架構中運行pod的服務節點,node是k8s集群操作的單元,用來承載被分配的pod的運行,是pod運行的宿主機

2.每個node都會被master分配一些工作負載,當某個node宕機,其上的工作負載會被master自動轉移到其他的節點上

3.kubelet 會向master注冊自己,一旦node被納入集群的管理范圍,kubelet進程就會定時向master匯報自己的信息(例如機器的cpu,內存,pod的運行情況),這樣master就可以獲取每個node的資源使用情況,並實現了高效均衡的資源調度策略

4.當某個node在運行超過指定的時間不上報信息時,會被master判定為死亡,node的狀態會被標記為不可以用

 

 

3.pod解釋:

1.運行在node節點上的,若干相關的容器的組合,pod內包含的容器運行在同意宿主機上,使用相同的網絡命名空間,ip地址,端口,可以通過localhost進行通信

2.pod是k8s進行創建,調度,管理的最小單位,一個pod包含了一個容器或者多個容器

3.一個node上運行同一個類型的pod(比如mysql,一個node上運行一個MySQL的pod)

 

4.k8s三層網絡模型:

1.NodeIP:每個節點服務器的IP

2.PodIP:每個服務的ip,可以解決端口沖突問題,同時也是每個服務的唯一標識,podip無法通過外網訪問,只能在內網訪問

3.ClusterIP:集群IP,對同一個服務多個實例(每個服務都有自己的podIP)組成的集群的入口IP

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM