Kubernetes架构简介

Kubernetes是主从的结构,它主要实现了对docker的调度,下面就详细的介绍一下我对Kubernetes架构的理解:

Master节点   :


api server:提供了集群管理的API接口,成为了集群中各个功能模块之间数据交互和通信的中心枢纽,并且拥有完备的集群安全机制,是整个集群的核心。

Scheduler:主要负责pod的调度策略,主要作用是将调度的pod按照特定的调度算法和调度策略绑定到集群中的某个适合的node上,并将绑定信息写入etcd中。他也是通过监听API server来获取创建pod的yaml。

Controller manager:是集群内部的管理控制中心,主要提供的控制服务有:Replication Controller(pod副本的控制)、Node Controller(Node节点的控制)、ResourceQuota Controller(资源的控制)、ServiceController及Endpoint Controller(服务的生成以及控制),它的控制管理的过程是通过监听API server来实现的。

etcd:用来存放各种增删改查的信息的数据仓库,所有的信息都会存放在这里。

node节点


pod:是运行的最小单元,里面可以运行1~多个container,每一个pod都会有一个唯一的ip地址。资源是根据namespace来进行隔离的。

Kubelet:每一个node上都会起一个kubelet服务进程,用于处理Master节点下发到本节点的任务,管理和创建pod容器,并且会周期性的向API server汇报节点资源的使用情况。

Kubelet-proxy:service的真实代理,接收service的服务,利用iptables将service请求重定向到kubelet-proxy,然后将任务分发到相应的pod的节点上去。(roundrobin算法按照成员列表逐个选择成员,如果一轮循环完成,便从头开始下一轮,同时还支持session)


下面两个小例子来详细描述一下各个功能节点的作用:

pod的创建过程(如图)


1.    指令传到APIserver,API server将pod的创建信息固化到etcd上

2.scheduler监控APIserver的watch端口,查看到etcd中有创建pod的消息,下面就为pod选择合适的node节点,并进行绑定,绑定成功后,scheduler会调用APIServer的API的增加接口在etcd中创建一个boundpod对象,描述在一个工作节点上绑定运行的所有pod信息。

3. kubelet监控APIserver的watch端口监听pod信息,发现有新的pod绑定在该节点上的时候,则根据etcd中的boundpod信息进行pod创建。

4. docker会从image仓库中查看docker的信息,并下载docker image最终进行container的创建。

5. controller-manager会监听API server的端口,对node、pod副本、资源等进行管理。


外部访问pod,pod并提供服务


1 controller-manager会监控API server的端口,然后管理service和endpoint的创建,其中endpoint主要是提供了server对应pod 的副本的访问地址。

2 proxy是service的主要实现者,他通过监听API server的端口,发现service,为service创建一个代理接口socket server用来接收来自server的访问请求,并创建Iptables,利用其规则使service的请求重定向到socket server。

3 在收到service请求之后,proxy将请求转发到后端的pod上,实现请求并实现负载均衡。


以上均为个人观点,如有错误还请各位大神指正
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值