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
