1、簡介node
Ansiblegit
Dockergithub
Docker compose,docker swarm,docker machinedocker
Mesos,marathon網絡
Kubernetes(佔據80%的市場)架構
DevOps:負載均衡
Devops,MicroServices,Blockchain運維
CI:持續集成測試
CD:持續交付,Deliveryspa
CD:持續部署,Deployment
Plan-設計-開發-構建-測試(自動實現這一系列流程叫持續集成)
-運維(獲取打包好的包叫持續交付)
- 持續部署
K8s(剁手,飛行員):
Borg
自動裝箱(自動完成部署)
自我修復
水平擴展
服務發現和負載均衡
自動發佈和回滾
祕鑰和配置管理集中化(配置中心)
存儲編排
批量處理執行
集羣:
許多臺主機當成一臺主機來使用
有中心節點架構的模型
Master/nodes
Master(高可用,3臺)
組件叫API Server
調度器(scheduler):負責觀測node的節點資源使用狀況(預選,優選)
控制器管理器(controller manager)---主備
Nodes(worker):運行容器的節點
Client->master-node
Kubelet:集羣代理(啓動並管理pod)
容器引擎:docker
Pod:k8s最小的調度的邏輯單元
容器的外殼,pod內運行容器,共享nat、uts和ipc
共享存儲卷
通常來講一個pod內只放一個容器
在一個資源池內進行統一管理(dockfile中打標籤來進行區分)
Label Selector:標籤選擇器
Label: K=v
Master/node
Pod分類:
自主式pod:
控制器管理的pod
replicationController:副本控制器
管理pod狀態
滾動更新
replicaSet
Deployment(管理無狀態的pod)
statefuSet(有狀態的)
DaemonSet
Job,cronjob
HPA(HorizonTalPodAutoscaler):自動控制器,根據負載需求調整pod個數
Pod生命週期須要用到服務發現機制
Service管理pod(調度),根據label標籤來關聯pod對象
Client - >service -> pod*N
DNS對service進行解析
AddOns:附件(附加組件)
客戶端和pod之間的橋樑:service(固定不變)
Label(標籤):固定不變,鏈接service-----名稱解析(DNS)
NMT
Nginx對外:
Tomcat
M:db
LBaas
K8s網絡(三個網段的網絡)
Pod網絡
Service(集羣)網絡(虛擬網絡只存在與iptables或ipvs之中)
節點網絡
Overlay Network,疊加網絡
同一個pod內的多個容器間:lo
各個pod之間的通訊(snat-dnat,兩級pod轉換),經過主機訪問pod
Pod與service之間的通訊(宿主機規則)
Kube-proxy:
對service進行管理
共享存儲
Etcd
CNI:容器網絡接口(網絡解決方案)
Flannel:網絡配置(疊加網絡)
Calico:支持網絡配置和網絡策略(三層隧道網絡)
Canel(Flannel+Calico):
架構圖: