【云原生】kubernetes核心组件

引言:

Kubernetes 是为运行分布式集群而建立的,分布式系统的本质使得网络成为 Kubernetes 的核心和必要组成部分,了解 Kubernetes 网络模型可以使你能够正确运行、监控和排查应用程序故障。

一、Kubernetes的核心组件

1.1、Master组件

1.1.1 kube-apiserver

  1. 用于暴露 kubernetes API,任何资源请求或调用操作都是通过 kube-apiserver 提供的接口进行。
  2. 以 HTTP Restful API 提供接口服务,所有对象资源的增删改查和监听操作都交给 API Server 处理后再提交给Etcd 存储。
  3. 可以理解成 API Server 是 K8S 的请求入口服务。API Server 负责接收 K8S 所有请求(来自 UI界面或者CLI 命令行工具),然后根据用户的具体请求,去通知其他组件干活。可以说 API Server 是 K8S 集群架构的大脑。

1.1.2 Kube-controller-manager

运行管理控制,是 K8S 集群中处理常规任务的后台线程,是 K8S 集群里所有资源对象的自动化控制中心。

        在 K8S 集群中,一个资源对应一个控制器,而 Controller manager 就是负责管理这些控制器的。由一系列控制器组成,通过 API Server 监控整个集群的状态,并确保集群处于预期的工作状态,比如当某个 Node 意外宕机时,Controller Manager 会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。

控制器 说明
Node Controller(节点控制器) 负责在节点出现故障时发现和响应
Replication Controller(副本控制器) 负责保证集群中一个RC(资源对象Replication Controller)所关联的Pod副本数始终保持预设值。可以理解成确保集群中有且仅有N个Pod实例,N是RC中定义的Pod副本数量
Endpoints Controller(端点控制器) 填充端点对象(即连接Services和Pods),负责监听Service和对应的Pod副本的变化。可以理解端点是一个服务暴露出来的访问点,如果需要访问一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道它的endpoint
Service Account & Token Controllers(服务账户和令牌控制器) 为新的命名空间创建默认账户和API访问令牌
ResourceQuota Controller(资源配额控制器) 确保指定的资源对象在任何时候都不会超量占用系统物理资源
Namespace Controller(命名空间控制器) 管理namespace的声明周期
Service Controller(服务控制器) 属于K8S集群与外部的云平台之间的一个接口控制器

1.1.3 kube-scheduler

是负责资源调度的进程,根据调度算法为新创建的 Pod 选择一份合适的 Node 节点。可以理解成 K8S 所有 Node 节点的调度器。当用于要部署服务时,Scheduler 会根据调度算法选择最合适的 Node 节点来部署 Pod。

  • 预算策略(predicate)
  • 优选策略(priorities)

1.1.4 配置存储中心 — etcd

K8S 的存储服务,负责存储K8S集群的重要信息。etcd 是分布式键值存储系统,存储了 K8S 的关键配置和用户配置,K8S 中仅 API Server 才具备读写权限,其他组件必须通过 API Server 的接口才能读写数据。

1.1.5 主节点工作流程

API Server 接收到请求创建一批 Pod,API Server 会让 Co

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值