docker+k8s實戰

docker

網絡構成

k8s集羣架構

POD架構

spring cloud微服務架構

Docker三大核心組件:
Docker 鏡像 - Docker images
Docker 倉庫 - Docker registeries
Docker 容器 - Docker containers

容器的三大組成要素:
名稱空間 namespace
1. pid 名字空間
2. net 名字空間
3. ipc 名字空間
4. mnt名字空間
5. uts 名字空間
6. user 名字空間
資源限制 cgroups
文件系統 overlay2(UnionFS)


k8s 4種volume
1.secret:用來保存小片敏感數據的k8s資源
2.ConfigMap與 Secret 類似,用來存儲配置文件的kubernetes資源對象,所有的配置內容都存儲在etcd中。
與 Secret 的區別:
ConfigMap 保存的是不需要加密的、應用所需的配置信息。
ConfigMap 的用法幾乎與 Secret 完全相同:可以使用 kubectl create configmap 從文件或者目錄創建 ConfigMap,也可以直接編寫 ConfigMap 對象的 YAML 文件。
3.Downward API
用於在容器中獲取 POD 的基本信息,kubernetes原生支持
Downward API提供了兩種方式用於將 POD 的信息注入到容器內部:
環境變量:
用於單個變量,可以將 POD 信息和容器信息直接注入容器內部。
Volume掛載:
將 POD 信息生成爲文件,直接掛載到容器內部中去。
4.ServiceAccountToken:默認在 pod 中使用自動掛載的 service account 憑證來訪問 API

RBAC:role角色:存儲權限 bash基礎 ac 訪問控制) 賬號—》角色-----》權限
在RABC API中,通過如下的步驟進行授權:
1)定義角色:在定義角色時會指定此角色對於資源的訪問控制的規則;
2)綁定角色:將主體與角色進行綁定,對用戶進行訪問授權

Probe:健康檢查"探針"(Probe)。kubelet 就會根據這個 Probe 的返回值決定這個容器的狀態

Pod 的恢復策略:
可以通過設置 restartPolicy,改變 Pod 的恢復策略。一共有3種:
1. Always: 在任何情況下,只要容器不在運行狀態,就自動重啓容器;
2. OnFailure: 只在容器 異常時才自動重啓容器;
3. Never: 從來不重啓容器。

k8s deployment資源創建流程:

  1. 用戶通過 kubectl 創建 Deployment。
  2. Deployment 創建 ReplicaSet。
  3. ReplicaSet 創建 Pod。

轉發K8S後端服務的四種方式
ClusterIP: 【集羣內部的轉發】
LoadBlancer Service:基於Nodeport
NodePort Service:【要做負載均衡的藉助第三方nginx】
Ingress:【不需要部署第三方負載均衡,並且自動感知後端服務情況,改配置】

私有云 ceph主流
存儲插件:不用手動部署rook-ceph 學習成本高
nfs

Spring-Cloud核心組件及底層原理

服務註冊/服務發現——Netflix Eureka
Client —》server(註冊中心) 服務註冊
server —》client 服務發現
客服端負載均衡——Netflix Ribbon
通過創建動態代理來調用服務接口——Feign
接口定義註解–》動態代理—》構造服務器地址
對這個地址,發起請求、解析響應
【基於 Feign 的動態代理機制,根據註解和選擇的機器,拼接請求 URL 地址,發起請求】

【首先通過ribbon負載均衡到Eureka client獲取服務註冊表(服務器IP,端口),
然後ribbon使用默認輪詢算法,選擇機器
feign對該機器,構造併發起請求】

斷路器——Netflix Hystrix
隔離、熔斷以及降級
【解決雪崩問題】
1.存在多個小線程池
2.每個線程就僅僅用於請求一臺固定的服務器
3.請求超時,請求就不再請求【熔斷】
4.未處理的請求會在數據庫裏記錄一條消息【降級】,等待手動處理

【發起請求是通過 Hystrix 的線程池來走的,不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務雪崩的問題。】

服務網關——Netflix Zuul
所有請求都往網關走,網關會根據請求中的一些特徵,將請求轉發給後端的各個服務
做統一的降級、限流、認證授權、安全

分佈式配置——Spring Cloud Config

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章