一、kubernetes系統基礎190622

一、容器編排工具

  • docker編排工具三劍客:docker compose, docker swarm, docker machine
  • IDC的操做系統:mesos
  • 提供容器編排框架:marathon
  • kubernetes

二、DevOps

  • CI:持續集成
  • CD:持續交付,Delivery
  • CD:持續部署,Deployment

三、k8s概述

  • Kubernetes是一個開源的,用於管理雲平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單而且高效(powerful),Kubernetes提供了應用部署,規劃,更新,維護的一種機制。

四、k8s特性

  • 自動裝箱
  • 自我修復,容器崩潰後直接從新拉起一個
  • 自動實現水平擴展
  • 自動實現服務發現和負載均衡
  • 自動發佈和自動回滾
  • 祕鑰和配置管理
  • 存儲編排
  • 批量處理執行

五、k8s架構

  • master:由一組節點來作管理節點,是整個集羣的大腦,一般應該有3個
    • API-Server:來接受請求
    • Scheduler:調度器
    • Controller-Manager:控制器管理器
  • node01...N :由N個節點來作運行docker的節點
    • Kubelet:管理node
    • Docker:容器引擎
    • Kube-proxy:建立/修改/刪除service規則

六、Pod豌豆莢

  • k8s中最小單位是pod
  • 在pod中運行容器
  • 在同一pod中的容器共享網絡和存儲

七、Label標籤

  • Label:標記POD對象,是POD的元數據,kv類型
  • Label Selector:標籤選擇器,挑選指定類的POD

八、Pod的分類

  • 自主式Pod
  • 控制器管理的Pod
    • ReplicationContrller:副本控制器,可實現滾動更新
    • ReplicaSet:副本集控制器
    • Deployment:只能管理無狀態的應用,支持2級Pod控制器(HPA),根據業務負載擴展Pod
    • StatefulSet:有狀態副本集
    • DaemonSet:守護副本集
    • Job
    • Ctonjob

九、Service對象

  • 提供固定的訪問地址,能夠實現調度功能
  • 爲Pod提供轉發
  • 靠標籤選擇器來選擇Pod爲本身的後端
  • 是一個iptables或者lvs的一條規則
  • service的名能夠被DNS-Pod解析

十、DNS-Pod

  • AddOns:是k8s集羣的一個附件
  • 可實現自動添加/刪除解析記錄

十一、k8s網絡

  • 物理機網絡:節點網絡
  • service網絡:集羣網絡
  • 容器網絡:pod網絡
  1. 同一個Pod內的容器使用lo網卡通訊
  2. 各Pod之間經過Overlay Network網絡(疊加網絡)通訊
  3. Pod與Service之間經過iptables規則通訊

十二、etcd

  • 存儲全部的集羣狀態信息
  • 通常有3個節點作冗餘
  • 提供resful風格的api
  • 鍵值存儲
  • 內部須要ca,簽署證書,以供https通訊

1三、flannel

  • CNI:容器網絡接口協議
  • flannel屬於CNI插件
  • 管理集羣的Pod網絡和集羣網絡的網絡配置
  • 使用疊加網絡實現
  • 與flannel相同功能的插件還有:
    • calico,支持網絡配置和網絡策略,使用IPIP隧道實現
    • canel:flannel和calico結合生成的項目
相關文章
相關標籤/搜索