k8s集羣搭建指南

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

  https://github.com/kubernetes

 

  自動裝箱(自動完成部署)

  自我修復

  水平擴展

  服務發現和負載均衡

  自動發佈和回滾

  祕鑰和配置管理集中化(配置中心)

  存儲編排

  批量處理執行

集羣:

  許多臺主機當成一臺主機來使用

  有中心節點架構的模型

  Master/nodes

  Master(高可用,3)

    組件叫API Server

    調度器(scheduler):負責觀測node的節點資源使用狀況(預選,優選)

    控制器管理器(controller manager)---主備

 

  Nodes(worker):運行容器的節點

    Client->master-node

    Kubelet:集羣代理(啓動並管理pod)

    容器引擎:docker

 

  Pod:k8s最小的調度的邏輯單元

    容器的外殼,pod內運行容器,共享natutsipc

    共享存儲卷

    通常來講一個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

      DNSservice進行解析

    AddOns:附件(附加組件)

 

  客戶端和pod之間的橋樑:service(固定不變)

    Label(標籤):固定不變,鏈接service-----名稱解析(DNS)

NMT

  Nginx對外:

  Tomcat

  M:db

   

 

  LBaas

 

 

  K8s網絡(三個網段的網絡)

    Pod網絡

    Service(集羣)網絡(虛擬網絡只存在與iptablesipvs之中)

    節點網絡

  Overlay Network,疊加網絡

    同一個pod內的多個容器間:lo

    各個pod之間的通訊(snat-dnat,兩級pod轉換),經過主機訪問pod

    Podservice之間的通訊(宿主機規則)

 

  Kube-proxy:

    對service進行管理

  共享存儲

    Etcd

 

 

  CNI:容器網絡接口(網絡解決方案)

    Flannel:網絡配置(疊加網絡)

    Calico:支持網絡配置和網絡策略(三層隧道網絡)

    Canel(Flannel+Calico):

架構圖:

     

     

      

相關文章
相關標籤/搜索