1. 程式人生 > >kubernetes簡介

kubernetes簡介

健康 sch 實現網絡 cot nco serve mac des 系統研發

一、容器編排工具

  • docker compose,docker swarm,docker machine
  • mesos,marathon
  • kubernetes

二、DevOps

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

三、kubernetes(舵手、飛行員)

1、特性

由Google根據Borg系統研發,go語言

  • 自動裝箱
  • 自我修復
  • 水平擴展
  • 服務發現和負載均衡
  • 自動發布和回滾
  • 秘鑰和配置管理
  • 存儲編排
  • 批量處理執行

2、Kubernetes Cluster架構

master/nodes:master一般有三個,nodes(worker)正真工作的節點

master上的組件:

  • API Server:提供API的服務
  • schedule:資源調度器
  • 控制器管理器:管理控制器管理器的健康狀態,控制器管理器需要做冗余

nodes上的組件:

  • kubelet:管理容器
  • 容器引擎:docker
  • kube-proxy

  • 控制器:在本地不停的loop,持續性探測容器健康狀態,一旦發送容器down的情況,則會向API Server發調用來啟動一個代替的容器
  • Pod:在k8s中運行的最小單元,Pod可以看作容器的外殼,同一Pod中的容器共享網絡和存儲資源,一般一個Pod只放一個容器,Pod有Label,可以使用Label Selector(標簽選擇器)

Pod:

  • 自主式Pod
  • 控制器管理的Pod
    • ReplicationCotroller
    • RelicaSet
    • Deployment:只能管理無狀態的副本
    • StatefulSet:控制有狀態的副本
    • DaemonSet
    • Job,Ctonjob
  • HPA控制器:HorizontalPodAutoscaler

k8s的網絡:

  • 節點網絡
  • 集群網絡
  • Pod網絡

同一個Pod內的多個容器:lo

各Pod之間的通信:Overlay Network

etcd:k/v存儲,k8s的DB,一般etcd集群有三個節點,https的RESfull風格的API

CNI:

  • flannel:網絡配置
  • calico:網絡配置,網絡策略
  • canel:用flannel實現網絡配置,用calico實現網絡策略

待續。。。

kubernetes簡介