Kubernetes 学习

21 阅读2分钟

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负载均衡和服务发现