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交互方式
