K8s架构的组成是什么?
1 个回答
慢慢理解世界,慢慢更新自己。马九Kubernetes工作方式 Cluster = N Master Node + N Worker Node:N主节点+N工作节点; N>=1 Kubernetes 集群由多个组件协同工作,以实现容器化应用的调度、管理和运行。以下是 Kubernetes 集群中主要的控制组件及其功能简述:  ### Kubernetes 组件详解 #### 一、控制平面组件(Control Plane Components) 控制平面的组件负责对集群进行全局决策(如调度)以及检测和响应集群事件(例如,当不满足部署的 `replicas` 字段时,启动新的 Pod)。 控制平面组件可以运行在集群中的任何节点上。为了简化操作,通常会在同一台计算机上启动所有控制平面组件,并且不会在该计算机上运行用户容器。 有关多 VM 控制平面设置的示例,请参阅 **[使用 kubeadm 构建高可用性集群](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/)**。 ##### 1. **kube-apiserver** - **功能**:API 服务器是 Kubernetes 控制平面的核心组件,负责公开 Kubernetes API,是控制平面的前端。 - **特性**:kube-apiserver 支持水平伸缩,可通过部署多个实例实现流量负载均衡。 ##### 2. **etcd** - **功能**:etcd 是一个一致性和高可用性的键值数据库,用于保存 Kubernetes 所有集群数据。 - **注意**:应为 etcd 数据库制定备份计划。更多信息请参考 **[etcd 文档](https://etcd.io/docs/)**。 ##### 3. **kube-scheduler** - **功能**:负责监视新创建的、未指定运行节点(Node)的 Pods,选择适合的节点运行这些 Pods。 - **调度决策因素**:包括资源需求、硬件/软件/策略约束、亲和性/反亲和性规范、数据位置、工作负载干扰及最后时限。 ##### 4. **kube-controller-manager** - **功能**:运行控制器的组件。尽管每个控制器逻辑上是单独的进程,但为了简化,它们被编译为一个可执行文件,在一个进程中运行。 - **主要控制器**: - **节点控制器(Node Controller)**:负责节点故障的通知和响应。 - **任务控制器(Job Controller)**:监控 Job 对象,创建 Pods 执行任务直至完成。 - **端点控制器(Endpoints Controller)**:填充 Endpoints 对象,将 Service 与 Pod 关联。 - **服务账户和令牌控制器(Service Account & Token Controllers)**:为命名空间创建默认账户和 API 访问令牌。 ##### 5. **cloud-controller-manager** - **功能**:嵌入特定云逻辑的控制平面组件,用于将集群与云提供商 API 集成。 - **特点**:仅运行特定于云平台的控制回路,适用于托管在云环境中的集群。 - **主要控制器**: - **节点控制器(Node Controller)**:检查节点停止响应后是否被云提供商删除。 - **路由控制器(Route Controller)**:管理底层云基础设施中的路由。 - **服务控制器(Service Controller)**:创建、更新和删除云提供商的负载均衡器。 #### 二、Node 组件 节点组件运行在每个节点上,负责维护运行中的 Pods 并提供 Kubernetes 运行环境。 ##### 1. **kubelet** - **功能**:集群中每个节点上的代理,确保容器在 Pod 中运行并保持健康。 - **特点**:接收 PodSpecs,管理由 Kubernetes 创建的容器。 ##### 2. **kube-proxy** - **功能**:每个节点上运行的网络代理,实现 Kubernetes 服务的一部分功能。 - **特点**:维护网络规则,支持集群内部和外部的网络会话与 Pod 通信。 - **实现方式**:如果操作系统支持数据包过滤层,则利用其实现规则;否则 kube-proxy 自行转发流量。 发布于 2025-01-06 16:24 •IP属地 河南举报评论收藏
公众号进入网站体验更佳

