Kubernetes(一)组件
Kubernetes组件
架构图1
架构图2
Master组件
提供集群的控制,对组件进行全局决策,并检测影响集群事件;Master组件可以在集群的任何节点运行,为了简单起见,通常会在一台机器上启用所有组件,并且不会在这个机器上运行用户容器;
- Kube-apiserver 主节点上负责提供Kubernetes API 服务的组件,他是Kubernetes的控制面前端。
- Etcd 高可用的键值数据库,用于保存整个集群的后台数据。
- Kube-scheduler 负责监视哪些新创建未指定节点的Pod,并选择节点让Pod在上面运行。
- Kube-Controller-Manager 运行控制器的组件,包含4个具体的控制器。
- 节点控制器(Node Controller):负责在节点出现故障时候进行通知和响应。
- 副本控制器(Replication Controller):负责为系统中每个副本控制器对对象维护正确的Pod。
- 端点控制器(Endpoints Controller):填充端点(Endpoints)对象,即加入(Services与Pod)。
- 服务账户和令牌控制器(Services Account & Token Controller):为新的命名空间创建默认账户和API访问令牌。
- Could-Controller-Manager 运行与基础云提供商交互的控制器
- 节点控制器(Node Controller) 用于检查云提供商以确定节点是否在云中停止响应后被删除。
- 路由控制器(Route Controller) 用于在底层云基础架构中设置路由。
- 服务控制器(Service Controller)用于创建、删除、更新云提供商负载均衡器。
- 数据卷控制器(Volume Cotroller)用于创建、装载和附加卷,并和云服务商进行交互以卷编排。
Node组件
节点组件在每个节点上运行,维护运行的Pod并提供Kubernetes环境。
- kubelet 在一个集群的每个节点运行代理,它保证容器都运行在Pod中,接收各类机制提供给他的PodSpecs,确保这些PodSpecs中描述的容器处于运行状态且健康。
- Kube-proxy 集群中每个节点运行的网络代理,负责维护节点的网络规则,允许集群的外部和内部网络访问与Pod网络进行通信。
- Container Runtime 负责运行容器,支持Docker、containerd、cri-o、rktlet等
Addons插件
- DNS 为集群提供DNS服务。
- 用户界面(Dashboard)基于web的UI,提供浏览数据的界面。
- 容器资源监控
- 集群层面日志