k8s组成
(1)以container为起点,k8s既然是容器编排工具,那么一定会有container
(2)k8s中要有自己的最小操作单位,称之为Pod,通过Pod管理container
(3)那Pod的维护谁来做呢?那就是ReplicaSet,通过selector来进行管理
(4)Deployment来监控和维护Pod和ReplicaSet
(5)相同或者有关联的Pod分门别类一下使用Label来管理
(6)具有相同label的service要是能够有个名称就好了,Service
(7)Pod运行在哪里呢?当然是机器咯,比如一台centos机器,我们把这个机器称作为Node
(8)多台Node共同组成集群,把之前的Label,Service也一起画上去
K8s的组件
01-一个操作集群的客户端,也就是和集群打交道
kubectl
02-请求肯定是到达Master Node,然后再分配给Worker Node创建Pod之类的
关键是命令通过kubectl过来之后,是不是要认证授权一下?
03-请求过来之后,Master Node中谁来接收?
APIServer
04-API收到请求之后,接下来调用哪个Worker Node创建Pod,Container之类的,得要有调度策略
Scheduler
05-Scheduler通过不同的策略,真正要分发请求到不同的Worker Node上创建内容,具体谁负责?
Controller Manager
06-Worker Node接收到创建请求之后,具体谁来负责
Kubelet服务,最终Kubelet会调用Docker Engine,创建对应的容器[这边是不是也反应出一
点,在Node上需要有Docker Engine,不然怎么创建维护容器?]
07-会不会涉及到域名解析的问题?
DNS
08-是否需要有监控面板能够监测整个集群的状态?
Dashboard
09-集群中这些数据如何保存?分布式存储
ETCD
K8s架构图
官网K8S架构图
https://kubernetes.io/docs/concepts/architecture/cloud-controller/