K8S 就是基于容器的集群管理平台kubernetes
kubernetes遵循传统的客户端服务器架构模式,客户可以用过RestFul Api接口或者kubectl与kubernetes集群通信,kubectl是对Restful接口的封装;每个集群都是有一个Master节点和多个Node节点组成的;
Master Node:
三个组件
API Server:集群 Rest API 接口,是所有服务访问的统一接口,提供认证授权,接入控制以及api注册发现等机制
Controller Manager:集群所有资源对象的自动化控制中心 kube-controller-manager 负责维护集群的状态,比如副本期望数量、故障检测、自动扩展、滚动更新等
Scheduler:Pod 调度 kube-scheduler
etcd 键值-对数据库,保存集群状态
Node节点即Worker节点
kubelet : 负责pod对应的容器的创建,启停等任务
kube-proxy 实现service 的通信与负载均衡,是一个简单的网络代理,也是一个load balancer,通过操作防火墙规则将service分配到同类标签的pod。
docker: docker 引擎,负责本机的容器创建和管理
Pod:kubernetes 的最基本操作单元,一个pod代表集群中的一个进程,内部封装一个或者多个容器
创建一个Deployment的过程:
APIServer 收到请求,将其存储在etcd中
Deployment Controller监听到etcd中Deployment对象的变化,发现新创建的Deployment对象之后,根据配置信息,创建对应数量的pod对象,将其存储在etcd中
Replicaset Controller 监听到etcd中的ReplicaSet对象变化,发现新创建的的ReplicaSet对象后,根据配置信息,创建对应数量的Pod对象,存在etcd中
Scheduler监听到etcd中未绑定Node的Pod对象,根据调度策略为其选择一个合适的Node,并绑定Node和Pod
Kubelet监听到etcd中绑定到本地Node上的Pod对象,根据Pod对象中定义的容器镜像等信息,创建并启动容器
Kube-Proxy 组件监听到etch中Service对象的变化,根据Service对象的定义,为其创建对应的iptables规则,实现Service负载均衡和服务发现