一、k8s基础概念

一、k8s整体架构

一、k8s基础概念

图中上面蓝色框表示master服务器,负责下面蓝色框节点的管理

master节点

  1. scheduler 负责接收任务,选择合适的节点分配任务(根据资源进行选择)
  2. replication controller(rc) 负责副本数目,期望值
  3. api server 所有服务访问统一入口,上面组件都需要与其交互,访问频繁,需要解压
  4. kubectl 命令行交互工具
  5. web UI 浏览器交互方式
  6. etcd 采用Go语言编写的分布式键值对存储服务,用于整个k8s的持久化,数据恢复。 etcd有v2和v3两个版本,v3支持了磁盘持久化特性,k8s在1.11版本中已经弃用v2版本

node节点

  1. kubelet 与容器交换,创建对应的容器,维持Pod的生命周期,把k8s命令转换为容器命令
  2. kub proxy 负责写入规则到IPTABES、IPVS实现服务映射访问

二、etcd架构
一、k8s基础概念

  • k8s和etcd都采用了HTTP协议的C/S结构
  • Raft用于数据存储
  • WAL预写日志,会有实时的临时备份和一定时间后的整体备份
  • Store持久化到磁盘

三、Pod

  • Pod与普通容器的区别,两个隔离的容器之间想要共享组件、网络,是不可以实现的。一个Pod中可以存在多个容器,在一个Pod中,其中的容器共用网络、存储卷,同一个Pod容器端口不能相同
  • Pod的类型
    自主式Pod:未被控制器管理,一旦死亡不会被管理,也不会自动创建Pod满足期望值
    控制器管理的Pod:被控制器管理
  • Pod控制器类型
    一、k8s基础概念

一、k8s基础概念

  • 滚动发布一、k8s基础概念
    此时服务器上运行状态,v1代表容器,当上线发布时deployment会创建一个的RS1,创建Pod,然后在RS1下创建一个v2版本的容器,将一个v1删除,然后三个容器都替换为v2。如果有bug直接可以回滚到v1,因为RS只是被停用了
  • HPA水平自动扩展
    一、k8s基础概念
    一、k8s基础概念
  • StatefullSet

一、k8s基础概念

  • DaemonSet
  • 一、k8s基础概念

四、其他组件

  • CoreDNS : 可以为集群中的SVC创建一个域名IP的对应关系解析
  • Dashboard : 给k8s提供B/S结构访问方式
  • INGRESS CONTROLLER : 官方提供了第四层的网络代理,它可以提供第七层网络代理
  • FEDETATION :提供一个可以跨集群中心多k8s统一管理功能
  • PROMETHEUS : 提供一个k8s集群的监控
  • ELK : 提供k8s统一日志分析接入平台