1 K8s的架构
一个 K8s 系统,通常称为一个 K8s 集群,集群主要包括两个部分:
- Master 节点(通常有一个主节点)
- Node 节点(用于计算的节点,通常大于1个)
2 Master节点
Master 节点主要负责管理和控制,Master 节点内部结构图如下:
Master 节点包括 API Server、Scheduler、Controller Manager、etcd:
- API Server 是整个系统的对外接口,供客户端和其它组件调用,相当于“服务窗口”;
- Scheduler 负责对集群内部的资源进行调度,相当于“调度室”;
- Controller Manager 负责管理控制器,相当于“管理员”;
- etcd 是保存K8s所有集群数据的后台数据库。
3 Node节点
Node 节点是工作负载节点,里面是具体的容器,Node 节点内部结构图如下:
Node节点包括 Docker、kubelet、kube-proxy、pod。
每个 Node 都会被 Master 分配一些工作负载,当某个 Node 宕机时,该节点上的工作负载就会被 Master 自动转移到其它节点上。
在Node上主要运行以下内容:
- Docker,创建容器,提供k8s在node中运行的环境;
- Kubelet,负责监视指派到它所在Node上的 Pod,包括创建、修改、监控、删除等;
- Kube-proxy,主要负责为Pod对象提供代理;
- Fluentd,主要负责日志收集、存储与查询。