Kubernetes学习篇之组件

2023-11-11

Kubernetes学习篇之组件

前言

今天聊一下Kubernetes集群中有哪些组件,顺便聊聊这些组件各自是干啥的

概述

运行容器化应用程序的机器称为节点(Node),工作节点托管Pod,Pod就是应用负载的组件,控制平面(Control Plane)管理集群中的工作节点和Pod

生产环境中,控制平面通常跨多台计算机运行,一个集群通常运行多个节点,提供容错性和高可用性

组成

控制平面组件(Control Plane Components)

控制平面组件在集群执行全局决策,例如(资源调度,接受和响应集群事件)

kube-apiserver

处理请求的工作,采用水平扩缩的设计,可通过部署多个实例来进行扩缩,并在其之间平衡负载

etcd

一致且高可用的键值存储,Kubernetes所有集群数据的后台数据库

kube-scheduler

负责监视新创建的未指定运行节点(node)的Pods,并选择节点来让Pod在上面运行,调度决策考虑的因素包括单个Pod及Pods集合的资源需求,软硬件及策略约束,亲和性及反亲和性规范,数据位置,工作负载间的干扰及最后时限

kube-controller-manager

负责运行控制器进程

从逻辑上讲,每个控制器都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行

有不同类型的控制器,例如:

节点控制器(Node Controller):负责节点出现故障后通知和响应

任务控制器(Job Controller):监测代表一次性任务的Job对象,然后创建 Pods来运行这些任务直至完成

端点分片控制器(EndpointSlice Controller):填充端点分片(EndpointSlice)对象,以提供Service和Pod之间的链接

服务账号控制器(ServiceAccount Controller):为新的命名空间创建默认的服务账号(ServiceAccount)

cloud-controller-manager

仅运行特定于云平台的控制器,允许将集群连接到云提供商的API上,并将与该云平台交互的组件同与你的集群交互的组件分离开来

与kube-controller-manager类似,cloud-controller-manager将若干逻辑上独立的控制回路组合到同一个可执行文件中,在一个进程上运行,可执行水平扩容来提升性能或增强容错能力

下面的控制器依赖于云平台驱动:

节点控制器(Node Controller):用于在节点终止响应后检查云提供商以确定节点是否已被删除

路由控制器(Route Controller):用于在底层云基础架构中设置路由

服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器

Node 组件

负责维护运行的Pod并提供Kubernetes运行环境

kubelet

在集群中每个节点上运行,保证容器运行在Pod中,接收一组通过各类机制提供给它的PodSpecs,确保这些PodSpecs中描述的容器状态正常,kubelet只管理Kubernetes创建的容器

kube-proxy

集群中每个节点上运行的网络代理,维护节点上的一些网络规则,允许从集群内部或外部的网络会话与Pod进行网络通信

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

容器运行时(Container Runtime)

负责管理Kubernetes环境中容器的执行和生命周期

Kubernetes支持许多容器运行环境,例如containerd,CRI-O以及Kubernetes CRI(容器运行环境接口)的实现

插件(Addons)

使用Kubernetes资源(DaemonSet,Deployment等)实现集群功能,这些插件提供集群级别的功能,插件中命名空间域的资源属于kube-system命名空间

下面介绍几种插件

DNS

集群DNS是一个DNS服务器,和环境中的其他DNS服务器一起工作,Kubernetes启动的容器自动将此DNS服务器包含在其DNS搜索列表中

Web界面(仪表盘)

Dashboard是Kubernetes集群的Web的用户界面,它使用户可以管理集群中运行的应用程序以及集群本身,并进行故障排除

容器资源监控

将关于容器的一些常见的时间序列度量值保存到一个集中的数据库中,并提供浏览这些数据的界面

集群层面日志

将容器的日志数据保存到一个集中的日志存储中,这种集中日志存储提供搜索和浏览接口

网络插件

实现容器网络接口(CNI)规范,负责为Pod分配IP地址,并使这些Pod能在集群内部相互通信

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kubernetes学习篇之组件 的相关文章

随机推荐

  • Jmeter使用篇(六) : Jmeter集合点

    配置Jmeter集合点的方法 1 需要设置集合点 进行并发同步 则需要在请求之前进行集合点的设置 具体位置在 添加 定时器 Synchronizing Timer 同步定时器
  • 01-LED-Blink-Demo(开发环境esp-idf)

    Blink Example This example code is in the Public Domain or CC0 licensed at your option Unless required by applicable law
  • 使用 STM32 的 SPI 来读取外部 SPI FLASH 芯片(W25Qxx)

    SPI简介 SPI 是英语 Serial Peripheral interface 的缩写 顾名思义就是串行外围设备接口 是 Motorola 首先在其 MC68HCXX 系列处理器上定义的 SPI 接口主要应用在 EEPROM FLASH
  • LeetCode刷题笔记:1619.删除某些元素后的数组均值

    1 问题描述 给你一个整数数组 arr 请你删除最小 5 的数字和最大 5 的数字后 剩余数字的平均值 与 标准答案 误差在 10 5 的结果都被视为正确结果 2 解题思路 先排序 再从数组下标5 处开始遍历 到数组下标95 截止 3 代码
  • 设计模式1:单例模式、工厂、创建者、原型

    设计模式 一种抽象 总结 Gang of Four GOF 分类 3大类23种 创建型模式 结构型模式和行为型模式 几个设计原则 接口分离 依赖倒置 原则 编程面向接口而不是实现 单一原则 单一部分完成特定的分类功能 封装 开闭原则 对修改
  • Ubuntu14/16 PCL1.7/1.8 opencv2/3/4 编译安装共存

    为了使用cuda和pcl共同编程 而系统带的pcl1 7不带gpu模块 故编译安装pcl完全版 与系统pcl1 7共存 不同分发版本Ubuntu应该没有什么区别 不同版本pcl编译和使用道理也都基本相同 opencv也是一样的道理 PCL
  • 嵌入式系统原理及应用(基于STM32)救急专用

    目录 第一章 嵌入式系统概述 第二章 嵌入式系统基础知识 第三章 STM32系列微控制器 第四章 通用输入输出端口 第五章 异常与中断处理 第六章 定时器 第七章 串行通信接口 第八章 模数转换器 数模转换器 第一章 嵌入式系统概述 嵌入式
  • 剑指offer.13.机器人的运动范围之DFS、BFS搜索

    机器人的运动范围 前言 一 DFS 1 思想 2 源码 二 BFS 1 源码 2 改进源码BFS 总结 前言 对于矩阵搜索问题 就像图的搜索一样 熟练掌握DFS BFS是关键 一 DFS 1 思想 通过DFS去寻找满足条件的格子 而已经访问
  • 用了SSD开机还是很慢?这些拖慢开机的原因你知道吗

    一 4K未对齐 如今新装机多半会选择安装SSD 固态硬盘 而要想让固态硬盘发挥应有的实力 4K对齐是一项必做的操作 4K对齐需要在分区环节完成 可以借助Win10安装程序 使用Win10安装程序分区后自动为4K对齐状态 或者专用的分区软件
  • 存储系统概述——SRAM静态随机存储器

    一 存储系统的概述 目前存储器的特点是 速度快的存储器价格贵 容量小 价格低的存储器速度慢 容量大 在计算机存储器体系结构设计时 我们希望存储器系统的性能高 价格低 那么在存储器系统设计时 应当在存储器容量 速度和价格方面的因素作折中考虑
  • c语言顺序表

    1 创建顺序表 产生随机数 2 查找元素的位置 3 插入元素 4 删除元素 5 输出元素 6 1 颜色和坐标函数 6 2 菜单 6 3蛇 7 完整代码 8 效果图片 开始 库函数 创建结构体 include
  • echarts线性渐变

    1 0 0 1分别代表了右 下 左 上四个位置的颜色坐标 然后再在下方编写 offset 0 color 00FF00 代表颜色坐标为0的颜色 offset 0 5 color 3A8EE6 代表颜色坐标为0 5的颜色 offset 0 8
  • Helm学习笔记

    文章目录 概念 定义 helm组件 helm的工作流程 helm安装 helm仓库 helm部署应用 helm应用的更新或回退或卸载 概念 定义 学习helm首先得了解helm是什么 我们先来看一下helm的定义 helm是将kuberne
  • 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数。

    1 把两个函数放在同一个程序文件中 作为一个文件进行编译和运行 include
  • 【C++】类和对象&封装

    C 面向对象三大特征 多态 继承 封装 对象与类 对象 C 中认为万事万物都可以看作一个对象 而对象具有两个特征 属性和行为 属性 属性指的是对象具有的性质 例如将书看为一个对象 那么书具有的属性就是内容 目录 出版社 书名 行为 行为就是
  • spring cloud eureka 消费者使用服务名访问,不能访问的问题

    这里说一下我自己犯的一个错误 我有三个项目eureka server provide service consumer service 以下我统称为ABC三个项目 现在的步骤是这样的 先访问C项目的一个接口 接口里面用restTemplat
  • LAMPSECURITY: CTF6 内网拿到root 20211226

    LAMPSECURITY CTF6 参考博客 https blog csdn net weixin 42652002 article details 112132466 spm 1001 2101 3001 6650 2 utm mediu
  • 第14.17节 爬虫实战3: request+BeautifulSoup实现自动获取本机上网公网地址

    一 引言 一般情况下 没有特殊要求的客户 宽带服务提供商提供的上网服务 给客户家庭宽带分配的地址都是一个宽带服务提供商的内部服务地址 真正对外访问时通过NAT进行映射到一个公网地址 如果我们想确认自己的公网地址还不是很容易 但百度提供了一项
  • 使用oracle LogMiner查看日志文件

    LogMiner的使用 作者 tolywang http tolywang itpub net 发表于 2005 01 19 11 03 分类 Oracle数据库管理 出处 http tolywang itpub net post 48 1
  • Kubernetes学习篇之组件

    Kubernetes学习篇之组件 文章目录 Kubernetes学习篇之组件 前言 概述 控制平面组件 Control Plane Components kube apiserver etcd kube scheduler kube con