kubernetes是一款由Google开源的容器编排管理工具
Borg: https://research.google/pubs/pub43438

Kubernetes架构图

架构图

Kubernetes Components

Control Plane Components(控制面组件)

控制平面组件会为集群做出全局决策,比如资源的调度,以及检测和响应集群事件。
控制平面组件可以在集群中任何节点上运行

kube-apiserver

该组件负责公开了 Kubernetes API,负责处理接受请求的工作。提供了所有内部和外部的API请求操作的唯一入口,同时也负责整个集群的认证、授权、访问控制、服务发现等能力

kube-controller-manager

该组件负责维护整个kubernetes集群的状态,比如多副本创建、滚动更新等。kube-controller-manager中包括多个控制器,这些控制器包括:

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
  • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
  • 端点控制器(Endpoints Controller):填充端点(Endpoints)对象(即加入 Service 与 Pod)
  • 服务帐户和令牌控制器(Service Account & Token Controllers):为新的命名空间创建默认帐户和 API 访问令牌

    kube-scheduler

    该组件是监听未调度的Pod,按照预定的调度策略绑定到满足条件的节点上

    etcd

    待续

    Kubernetes Nodes Components组件

    Container Runtime(容器运行时)

    该组件主要负责容器的镜像管理以及容器创建及运行

    kubelet

    该组件主要负责维护Pod的生命周期,比如创建和删除Pod对应的容器

    kube-proxy

    该组件主要负责kubernetes内部的服务通信,在主机上维护网络规则并提供转发及负载均衡能力

    其他常用组件

    CoreDNS

    负责为整个集群提供DNS服务

    Ingress Controller

    为服务提供外网接入能力

    Dashboard

    提供GUI可视化界面

    Fluentd + elasticsearch

    为集群提供日志采集、存储与查询能力

    Control Plane与Nodes交互

    Kubernetes中Control Plane与Nodes交互方式