Kubernetes(K8S)简介
高可用集群的节点最好保持在三个以上的基数
前身是Google的Borg系统
特点:
1轻量级(消耗的资源少)
2开源
3弹性伸缩
4负载均衡(已经实现模块的负载均衡IPVS框架)轮询算法
服务的分类
有状态服务:数据库管理系统(DBMS)
无状态服务:LVS,APACHE
组件说明
Borg的架构
Scheduler把数据写入Paxos(键值对数据库)Borglet会去监听,发现有请求就会消费。
K8s的架构
Apiserver:所有服务的统一访问入口
CrontrollerManager:维护副本的期望数据(重要)
Scheduler:负责介绍任务,选择核实的节点分配任务
ETCD:键值对数据库,存储K8S集群的所有重要信息(持久化)
Kubelet:直接跟容器引擎交互实现容器的生命周期管理
KUB-proxy:负责写入规则至IPTABLES,IPVS实现服务映射访问的
CoreDns:可以为集群中的SVC创建一个域名IP的对应关系解析
DashBoard:给K8S集群提供一个B/S结构访问体系
Ingress controller:官方只能实现四层代理,变得可以实现七层
Fedetation:提供一个可以跨集群中心多K8S统一管理功能
Prometheus:提供K8s的集群监控能力
ELK:提供K8S的集群日志统一分析接入平台
replication controller维护副本数目(期望值)数量对应不上会创建pod或者删除pod
Scheduler收到任务把任务交给ApiServer然后ApiServer把任务交给etcd(类似于Pxios(键值对数据库))
etcd:可信赖的分布式键值对存储服务,协助分布式集群正常运转
etcd内部架构图
WAL:防止信息损坏的记录日志(会定时完整备份)
Store:备份的日志会实时写入的对象
node
Kubelet:与CRI交互 维持pod的生命周期
Kube proxy:负载均衡,默认操作对象是firewall 防火墙