容器云架构实践-04

Kubernetes 基础架构

容器云架构实践-04

从上面的Kubernetes架构图中,我们可以看出Kubernetes主要分为两类节点。master节点(控制节点)控制和维护整个集群的状态,比如创建资源、删除资源。 node节点(工作节点)负责运行任务,比如启动容器。不同类型的节点的组件也不尽相同,例如master节点有apiserver、scheduler、controller manager、etcd组件,node节点有kubelet、kube-proxy组件 ,当然kubectl组件是命令行工具。对于这些组件,我们将会一一给大家进行介绍。

master节点组件

容器云架构实践-04

  • API Server: 集群控制的唯一入口,封装了资源的生命周期管理命令,是Kubernetes控制前端。所有组件的通信和数据交换都要走API,身份验证也归他。
  • Controller Manager:集群内部各种资源controller的核心管理者,每个资源对应一致controller,它们确保资源处于期望值。
  • Scheduler: API传来信息之后,它负责调度一个node进行资源创建,支持自定义调度算法同时提供多种预选和优选策略。
  • ETCD: 集群主数据库,存储所有资源对象和状态,API 传输数据信息时会存入相关信息到etcd中,是实时更新的。

node节点组件

容器云架构实践-04

  • Docker: docker引擎,直接管理容器的生命周期
  • Kubelet: 唯一非容器形式的组件,沟通master和work,管理Pod的生命周期,通过API Server注册所在节点的信息,并且监控容器和节点的资源情况向master汇报。
  • Kube-proxy:主要负责网络通信这块,把传递到Service上的请求(负载均衡)转发到某个Pod上,是通过iptables实现代理功能。最后还能够将service端口和宿主机的端口进行绑定实现与外网的通信。

Kubernetes 业务流程

  • kubectl 命令行工具中输入管理命令
  • API Server 接收到管理命令后验证身份信息
  • 身份验证通过之后,将管理命令传递给Controller Manager 开始创建资源
  • Scheduler 负责调度整个集群中的工作节点,然后把管理命令传给工作节点
  • ETCD在API 传输数据信息时会存入相关信息到etcd中
  • Kubelet接收到管理信息
  • Docker负责启动容器
  • Kube-proxy负责Pod间的通信
  • API Server 接收到工作节点的资源情况反馈给master节点
  • Controller Manager 通过读取ETCD中的数据直至确保资源达到预期
容器云架构实践-04


分享到:


相關文章: