[云原生之k8s] Kubernetes核心组件

目录

引言

一、Kubernetes的核心组件

1、Master组件

kube-apiserver

kube-controller-manager

kube-scheduler

配置存储中心-etcd

主节点工作流程

2、Node组件

kubelet

kube-Proxy

docker或rocket

二、Kubernetes核心概念

1、Pod

2、Pod 控制器

Deployment—无状态应用部署

Statefulset—有状态应用部署

K8S 创建Pod 流程

3、Label标签

4、Label 选择器(Label selector)

5、Service

ServiceController

EndpointController

kube-proxy

6、Ingress

7、name

8、Namespace


引言

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

一、Kubernetes的核心组件

1、Master组件

kube-apiserver

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

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集群与外部的云平台之间的一个接口控制器

kube-scheduler

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

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

配置存储中心-etcd

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

主节点工作流程

API Server 接收到请求创建一批 Pod,API Server 会让 Controller-manager 按照所预设的模板去创建 Pod,Controller-manager 会通过 API Server 去找 Scheduler 为新创建的 Pod 选择最适合的 Node 节点。比如运行这个 Pod 需要 2C4G 的资源,Schedular 会通过预算策略在所有 Node 节点中挑选最优的。Node 节点中还剩多少资源是通过汇报给 API Server 存储在 etcd 里,API Server 会调用一个方法找到 etcd 里所有 Node 节点的剩余资源,再对比 Pod 所需要的资源,在所有 Node 节点中查找哪些 Node 节点符合要求。如果都符合,预算策略就交给优选策略处理,优选策略再通过 CPU 的负载、内存的剩余量等因素选择最合适的 Node 节点,并把 Pod 调度到这个 Node 节点上运行。

2、Node组件

kubelet

Node 节点的监视器,以及与 Master 节点的通讯器。Kubelet 是 Master 节点安插在 Node 节点上的 “眼线”,它会定时向 API Server 汇报自己 Node 节点上运行的服务的状态,并接受来自 Master 节点的指示采取调整措施。
  从 Master 节点获取自己节点上 Pod 的期望状态(比如运行什么容器、运行的副本数量、网络或者存储如何配置等),直接跟容器引擎交互

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值