一个角度分为:
1.k8s的组件分类
主要分为mater 组件 ,(api server,etcd,ControllerManager,schedule)
2.Node 组件
Node 主要负责容器的各种依赖环境,并接受Master管理,每个Node的构成:
Kubelete,Container Runtime,Kube-pxoxy.
3.核心组件
k8s 还依赖于一组的附件组件,通常是由第三方的提供的特定的应用程序。
1.KubeDNS (动态解析)
2.Dashboard:webUI
3.Heapster:容器的和节点的性能分析系统
另一个角度:
控制平面组件(Control Plane Components)
kube-apiserver
API 服务器是 Kubernetes 控制面的组件, 该组件公开了 Kubernetes API。 API 服务器是 Kubernetes 控制面的前端。
Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平伸缩,也就是说,它可通过部署多个实例进行伸缩。 你可以运行 kube-apiserver 的多个实例,并在这些实例之间平衡流量。
etcd
etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。
您的 Kubernetes 集群的 etcd 数据库通常需要有个备份计划。
kube-scheduler
控制平面组件,负责监视新创建的、未指定运行节点(node)的 Pods,选择节点让 Pod 在上面运行。
调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。
kube-controller-manager
cloud-controller-manager
云控制器管理器是指嵌入特定云的控制逻辑的 控制平面组件。 云控制器管理器使得你可以将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。
Node 组件
kubelet
kube-proxy
容器运行时(Container Runtime)
插件(Addons)
DNS
Web 界面(仪表盘)
参考资料:
https://www.w3cschool.cn/kubernetes/kubernetes-q8f93ns2.html