K8s组件说明

K8s组件说明

Borg

高可用集群副本数据最好是大于等于3的奇数个
K8s组件说明_第1张图片
访问方式

  • web browsers浏览器
  • command-linetools命令行
  • borgcfg文件读取

scheduler:调度器,所有访问会被分发到节点去运行。scheduler会把数据写入Paxos(谷歌键值对数据库)
Borglet:会实时监听Paxos,如果发现有自己的请求会去处理,达到流程目的
BorgMaster负责请求分发,可以理解为集群的大脑,防止BorgMaster单节点故障高可用集群需满足3,5,7,9的奇数
Borglet负责宫泽

K8s

K8s组件说明_第2张图片
etcd(开源go语言)的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转
master

  • APISERVER:所有服务访问统一入口。接收到请求会去操作etcd
  • Scheduler:调度器,负责介绍任务,选择合适的节点进行分配任务,把任务交给APISERVER,APISERVER负责写入etcd。
  • replication
    controller:控制器,维护副本数目,期望值,想让容器运行几个副本由它控制,一旦副本数不满足期望值,rc负责把副本数改写到期望值或申请到期望值,也就是申请对应的Pod或删除对应Pod。
  • Scheduler与replication controller都可以在本生成缓存,并不是都要去APISERVER。
  • ETCD:键值对数据库,存储k8s集群所有重要信息(持久化)如果需要恢复数据只需要还原ETCD
    K8s组件说明_第3张图片
  • v2把所有数据写入内存
  • v3引入本地卷的持久化操作,关机不会造成数据损毁,会从本地磁盘恢复

ETCD数据存储
K8s组件说明_第4张图片

  • 使用HTTP服务构建C/S,k8s也采用
  • Raft:读写信息,所有信息存放地
  • WAL:预写日志,为防止数据损毁,定时对日志完整备份,实时将日志写入本地磁盘Store

node节点
K8s组件说明_第5张图片
kubelet(docker表现形势)

  • CR2:容器,运营环境,接口
  • 与docker(容器引擎交互实现容器的生命周期管理)进行交互,操作docker创建对应的容器,维持Pod的生命周期

kube proxy

  • 负责写入规则至IPTABLES,

  • 负载均衡,操作防火墙实现Pod的映射,新版本支持IPVS实现服务映射

container(docker)
COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析
DASHBOARD:给k8s集群提供一个B/S结构访问关系
INGRESS CONTROLLER:官方只能实现四层代理,INGRESS可以实现七层代理
FEDETATION:提供一个可以跨集群中心多k8s统一管理功能
PROMETHEUS:提供k8s集群的监控能力
ELK:提供k8s集群日志统一分析介入平台

你可能感兴趣的:(Kubernetes)