1: etcd是干什么的:
键-值存储仓库,用来配置共享和服务发现。
k8s把Node, pod,replication controller, Services看做是资源对象,这些资源对象可以通过K8s提供的kubectl工具进行增、删、改、查等操作将其保存在etcd中持久化存储。K8s相当于一个自动化的资源控制系统,通过跟踪对比etcd库里保存的‘资源期望状态’和“实际资源状态”的差异来实现自动控制和自动纠错的高级功能。
2:Master:
k8s的集群控制节点,K8s所有控制命令都发给它,它负责具体的执行过程,它一般单独运行在服务器上,是集群的首脑(是否会出现单点故障?)
上面运行的关键进程:
A: Kubernetes API Server(Kube-apiserver): 提供HTTP Rest接口的关键服务进程,是K8s里所 有资源的增、删、改、查等操作的唯一入口,也是集群控制入口进程。
B:Kubernetes Controlle manager(Kube-controller-manager), Kubernetes里所有资源对象的自动化中心,资源对象的 大总管。
C: Kubernetes Scheduler(kube-scheduler), 负责资源调度(Pod调度)。
D: etcd Server进程: 资源兑现更多数据保存在etcd中。
3:Node(nodes之间可以看做是多个备份)
除了Master, 其他机器(物理机或虚拟机)称为Node节点。
Node节点是K8s集群中的负载节点,每个Node都会被Master分配一些工作负载(Docker容器)。当某个Node宕机,其上的工作负载会被转到其他节点上。
Node节点上都运行以下一组关键进程:
A:kubelet: 负责Pod对应容器的创建、启动暂停等任务,同时与Master节点密切协作,实现集群管理的基本功能。
B: kube-proxy: 实现K8s service的通信与负载均衡机制的重要组件
C: Docker Engin(docker): Docker引擎,负责本机的容器创建和管理。
Node节点可以在运行期间动态增加到K8s集群,默认情况下kubele会向Master注册自己,
一旦Node被纳入集群管理范围,kubelet进程会定时向Master节点汇报自身情况。比如,OS,Docker版本,CPU和内存情况。这样master可以获知每个node资源使用情况,并实现高效的负载均衡。
查看nodes:
# kubectl get nodes
查看nodes详细信息:
# kubectl describe node kubernetes-minionl
Node基本信息: 名称、标签、创建时间。
Node当前运行状态: 磁盘是否满了,
Node的主机地址和主机名。
Node上资源总量、可分配资源量:
主机系统信息
当前正在运行的Pod列表概要信息。
4 Pod