K8s 核心组件介绍

news2024/11/15 15:36:16

目录

    • 前言
    • 一、控制平面组件
      • 1.1 kube-apiserver
      • 1.2 etcd
      • 1.3 kube-scheduler
      • 1.4 kube-controller-manager
      • 1.5 cloud-controller-manager
    • 二、Node 组件
      • 2.1 kubelet
      • 2.2 kube-proxy
      • 2.3 Container Runtime


前言

一个完整的 K8s 集群由一组节点(node)服务器组成,这些服务器节点运行着 K8s 所管理的容器化应用,且每个集群至少有一个工作节点(work node)。工作节点会托管所有的 Pods,而 Pod 就是作为应用负载的组件。

控制平面管理集群中的工作节点和 Pods,为集群提供故障转移和高可用性。

image-20221026180431509

基础架构:
image-20221027153824374

一、控制平面组件

控制平面组件会为集群做出全局决策(如:集群资源调度、检测和响应等),控制节点可以在集群中的任何节点上运行,接下来看看控制平面组件都有哪些。

1.1 kube-apiserver

该组件负责公开 K8s API,负责 API 请求处理,提供了资源操作的唯一入口(如认证、授权、访问控制、API 注册等),是 K8s 的前端控制平面组件。

kube-apiserver 可进行水平扩/缩容(通过部署多个 kube-apiserver 实例来实现),实现多 kube-apiserver 实例的流量平衡。

1.2 etcd

etcd 是兼顾一致性与高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库,它保存了整个 K8s 集群的状态。

通常,我们也要对 ETCD 集群做相关备份工作,更多 ETCD 相关内容可阅读其官方文档

1.3 kube-scheduler

该组件负责资源调度,如监视新创建的、未指定运行节点(node) 的 Pods, 并选择节点来让 Pod 在上面运行。

调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰等。

1.4 kube-controller-manager

该组件负责运行控制器进程,从逻辑上讲,每个控制器都是单独的一个进程,但是为了降低复杂性,这些控制器都被编译到同一个可执行文件,并在同一个进程中运行。负责维护集群状态,如故障检测、自动扩展、滚动更新等。

控制器主要包括:

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应;
  • 任务控制器(Job Controller):负责检测一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成;
  • 端点控制器(Endpoints Controller):填充端点(Endpoints)对象,即加入 Service 与 Pod;
  • 服务账户和令牌控制器(Service Account & Token Controllers):为新的命名空间创建默认帐户和 API 访问令牌。

1.5 cloud-controller-manager

该组件是指嵌入特定云的控制逻辑控制平面组件,允许你将 K8s 集群连接到云提供商的 API 上,并将与该云平台交互的组件同与你的集群交互的组件分离开来。

二、Node 组件

2.1 kubelet

该组件运行在 K8s 集群中的每个 work 节点上,保证容器都运行在 Pod 中。

kubelet 接收一组通过各类机制提供给它的 PodSpecs, 确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。

2.2 kube-proxy

该组件运行在 K8s 集群中的每个 work 节点上,是集群中每个 work 节点上运行的网络代理,负责维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则。 否则,kube-proxy 仅做流量转发。

2.3 Container Runtime

该组件是容器运行时,是负责运行容器的软件。

Kubernetes 支持许多容器运行环境,例如 Docker、Containerd、CRI-O 等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

组队-蓝桥杯

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 作为篮球队教练,你需要从以下名单中选出 11 号位至 55 号位各一名球员,组成球队的首发阵容。 每位球员担任 11 号位至 55 号位时的评分如下…

关于人脸检测和人脸关键点检测的详解(涉及Opencv 和Dlibd)

关于人脸识别,大家入门opencv,最常见的是用opencv级联分类器器里面的函数进行人脸的识别(当然里面包含很多各种物体的分类器,大家可以一一测试),今天我们来练一下关于人脸识别的级联器。 1,ope…

数据仓库(DW)、数据湖、数据中台的关系

一句话说明:数据中台是一套体系,既不是工具又不是存储,它可以包含数据湖和数据仓库。 数据仓库 数据仓库是一个面向主题的、集成的、随时间变化但信息本身相对稳定的数据集合,用于支持管理决策过程。其本质就是完成从面向业务过程…

[附源码]Python计算机毕业设计Django-菜篮子系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

一文学会jenkins pipline自动化构建

01 Pipeline流水线基本语法 首先创建 在jenkins上创建一个pipeline的流水线任务 新建ITEM–>选择流水线 基本pipeline脚本结构 pipeline {//agent 表示要执行的节点,any表示任意节点 agent any //stages表示任务执行时的所有步骤集合 stages { /…

企业销售CRM的主要优势是什么?

民营企业商品销售CRM的主要就竞争优势是什么? 新一代研究说明,由于差劲的顾客新体验,或内公司每月经济损失750亿元。为了更快地介绍您的顾客,您须要两个智能化的顾客管理工作系统。因而,您能提供更多直接影响您的商品销售的高质…

Python调用C++

1 背景 python被称为胶水语言,其优势是能够粘结各种不同的语言。同时,python有着更大的“亲民性”,很容易进行开发。但是,python最大的问题就是计算速度不够。通常可以用CUDA或者C对一个python程序进行加速,加速策略如…

【LeetCode】单词搜索 II [H](前缀树)

212. 单词搜索 II - 力扣(LeetCode) 一、题目 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成&am…

QT系列第2节 QT中元对象系统

QT是在标准C上进行了扩展,所以就有自己的特性,其中元对象系统就是其一。元对象系统有点类似于java和go语言中的反射,让我们在编程时解决问题多了些方法和思路,关于元对象可以简单总结出以下内容项。 目录 一.元对象要点总结 二…

Linux转发性能评估与优化之——转发瓶颈分析与解决方案

线速问题 很多人对这个线速概念存在误解。认为所谓线速能力就是路由器/交换机就像一根网线一样。而这,是不可能的。应该考虑到的一个概念就是延迟。数据包进入路由器或者交换机,存在一个核心延迟操作,这就是选路,对于路由器而言&…

软件工程复习简略

软件工程复习简略1.什么是软件生存周期?通常可划分为哪些阶段?2.简述需求分析要经过哪些步骤,每个步骤的作用。3.详细设计有哪些常用工具?(注意Pad图的画法)4.软件测试的目的和原则是什么?5.测试…

pythonselenium自动化测试实战项目(完整、全面)

前言 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习。(注:项目是针对我们公司内部系统的测试,只能内部网络访问,外部网络…

【SpringCloud负载均衡】【源码+图解】【三】LoadBalancer的工作原理

【SpringCloud负载均衡】【源码图解】【二】LoadBalancer配置 目录3. LoadBalancer的工作原理3.1 创建LoadBalancerRequest3.2 创建上下文3.2.1 properties3.2.2 configurations3.2.3 contexts3.3 获取ReactiveLoadBalancer3.4 获取ServiceInstance3.5 向serviceInstance请求结…

Java要学到什么程度才可以找工作?

Java为不同的集合提供了一个集合框架。集合基于数据结构,比如常见的:列表、数组、集合、哈希图等等。因此,在研究集合时,最好了解一点数据结构的相关知识。 主要副题: List Set Map ArrayList LinkedList Queue…

web3:智能合约-虚拟机(EVM、HVM、WASM、MOVE)

在区块链上,用户通过运行部署在区块链上的合约,完成需要共识的操作。而为智能合约提供运行环境的便是对应的虚拟机。 目录EVM基础概念技术细节EVM的存储模型交易在EVM的执行普通转账交易智能合约的创建或者调用EVM机器语言与现有的虚拟机科技作比较EVM的…

Java中类的复用

类的复用(组合与继承) 第一种方法:只需在新类中产生现有类的对象,新类由现有类组成,也称为组合,该方法只是复用了现有程序代码的功能; 第二种方法:按现有类来创建新类,…

m基于LPF-VMD和KELM的鸟群优化算法的风速预测算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 1).使用 LPF-VMD 对风速时间序列进行分解, 得到一个低频的趋势分量以及 n 个由 VMD 分解得 到的 BIMF。 2).对 LPF-VMD 分解得到的各分量分别建立 KELM 预测模型,采用 B…

【进阶】C语言第二课:升级你的指针(1)

目录 🤩前言🤩: 一、字符指针🤯: 1.字符指针的使用🦝: 2.常量字符串🦊: 3.相关面试题分析🐣: 二、指针数组🧐: 三、数…

vue+nodejs公益图书借阅捐赠管理系统

公益图书捐赠管理系统 用户信息:id、用户名、密码、捐书数量(管理员端可以点击跳转查看详情)、上传电子书数量(管理员端可以点击跳转查看详情)、借阅图书数量(管理员端可以点击跳转查看详情)&am…

利用全长转录组多重阵列测序检测同源异构体

哈佛大学和麻省理工学院近期发表了“High-throughput RNA isoform sequencing using programmable cDNA concatenation.”研究论文中,将 cDNA 串联成可用于长读长测序最佳的单分子的技术应用于肿瘤浸润 T 细胞的单细胞 RNA 测序,提高了寻找可变剪接基因的准确度&…